优化侧边栏菜单 UI细节

This commit is contained in:
ALIENJACK 2024-12-04 23:15:05 +08:00
parent 0b7d6c640d
commit 31099c1900
81 changed files with 6544 additions and 5445 deletions

View File

@ -1,5 +1,4 @@
using AxibugEmuOnline.Client; using AxibugEmuOnline.Client;
using System;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
namespace AxibugEmuOnline.Editors namespace AxibugEmuOnline.Editors

View File

@ -1,6 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using UnityEngine;
namespace AxiReplay namespace AxiReplay
{ {

View File

@ -4,7 +4,7 @@ using System.Text;
namespace AxiReplay namespace AxiReplay
{ {
[StructLayout(LayoutKind.Explicit,Size = 44)] [StructLayout(LayoutKind.Explicit, Size = 44)]
public struct ReplayHandler public struct ReplayHandler
{ {
[FieldOffset(0)] [FieldOffset(0)]
@ -51,7 +51,7 @@ namespace AxiReplay
FM32IP32, FM32IP32,
FM32IP64, FM32IP64,
} }
public static void GetStringByteData(string str,out byte[] data,out int lenghtWithEnd,Encoding encoding) public static void GetStringByteData(string str, out byte[] data, out int lenghtWithEnd, Encoding encoding)
{ {
data = encoding.GetBytes(str); data = encoding.GetBytes(str);
lenghtWithEnd = data.Length + 1; lenghtWithEnd = data.Length + 1;

View File

@ -128,14 +128,14 @@ namespace AxiReplay
/// </summary> /// </summary>
public bool NextFrame(out ReplayStep data) public bool NextFrame(out ReplayStep data)
{ {
return TakeFrame(1,out data); return TakeFrame(1, out data);
} }
/// <summary> /// <summary>
/// 往前推进指定帧数量的Input (返回是否变化) /// 往前推进指定帧数量的Input (返回是否变化)
/// </summary> /// </summary>
/// <param name="addFrame"></param> /// <param name="addFrame"></param>
public bool TakeFrame(int addFrame,out ReplayStep data) public bool TakeFrame(int addFrame, out ReplayStep data)
{ {
bool Changed = false; bool Changed = false;
mCurrFrame += addFrame; mCurrFrame += addFrame;

View File

@ -57,7 +57,7 @@ namespace AxiReplay
/// 往前推进帧的,指定帧下标 /// 往前推进帧的,指定帧下标
/// </summary> /// </summary>
/// <param name="frameInput"></param> /// <param name="frameInput"></param>
public void NextFramebyFrameIdx(int FrameID,UInt64 frameInput) public void NextFramebyFrameIdx(int FrameID, UInt64 frameInput)
{ {
TakeFrame(FrameID - byFrameIdx, frameInput); TakeFrame(FrameID - byFrameIdx, frameInput);
byFrameIdx = FrameID; byFrameIdx = FrameID;
@ -140,7 +140,7 @@ namespace AxiReplay
temp.Add($"CreateTime => {handler.CreateTime}"); temp.Add($"CreateTime => {handler.CreateTime}");
temp.Add($"AllFrame => {handler.AllFrame}"); temp.Add($"AllFrame => {handler.AllFrame}");
temp.Add($"SingleLenght => {handler.SingleLenght}"); temp.Add($"SingleLenght => {handler.SingleLenght}");
dbgList.InsertRange(0,temp); dbgList.InsertRange(0, temp);
File.WriteAllLines(dumppath, dbgList); File.WriteAllLines(dumppath, dbgList);
} }
} }

View File

@ -27,10 +27,10 @@ namespace Coffee.UIExtensions
#if TMP_PRESENT #if TMP_PRESENT
static readonly List<Vector2> s_Uv0 = new List<Vector2> (4096); static readonly List<Vector2> s_Uv0 = new List<Vector2> (4096);
static readonly List<Vector2> s_Uv1 = new List<Vector2> (4096); static readonly List<Vector2> s_Uv1 = new List<Vector2> (4096);
#if UNITY_2017_1_OR_NEWER #if UNITY_2017_1_OR_NEWER
static readonly List<Vector2> s_Uv2 = new List<Vector2> (4096); static readonly List<Vector2> s_Uv2 = new List<Vector2> (4096);
static readonly List<Vector2> s_Uv3 = new List<Vector2> (4096); static readonly List<Vector2> s_Uv3 = new List<Vector2> (4096);
#endif #endif
static readonly List<Vector3> s_Vertices = new List<Vector3> (4096); static readonly List<Vector3> s_Vertices = new List<Vector3> (4096);
static readonly List<int> s_Indices = new List<int> (4096); static readonly List<int> s_Indices = new List<int> (4096);
static readonly List<Vector3> s_Normals = new List<Vector3> (4096); static readonly List<Vector3> s_Normals = new List<Vector3> (4096);
@ -42,7 +42,7 @@ namespace Coffee.UIExtensions
static readonly List<UIVertex> s_UIVertices = new List<UIVertex> (4096); static readonly List<UIVertex> s_UIVertices = new List<UIVertex> (4096);
static readonly List<BaseMeshEffect> s_TmpEffects = new List<BaseMeshEffect>(4); static readonly List<BaseMeshEffect> s_TmpEffects = new List<BaseMeshEffect>(4);
#endif #endif
static readonly Material [] s_EmptyMaterials = new Material [0]; static readonly Material[] s_EmptyMaterials = new Material[0];
//################################ //################################
@ -51,12 +51,12 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// The Graphic attached to this GameObject. /// The Graphic attached to this GameObject.
/// </summary> /// </summary>
public Graphic graphic { get { Initialize (); return _graphic; } } public Graphic graphic { get { Initialize(); return _graphic; } }
/// <summary> /// <summary>
/// The CanvasRenderer attached to this GameObject. /// The CanvasRenderer attached to this GameObject.
/// </summary> /// </summary>
public CanvasRenderer canvasRenderer { get { Initialize (); return _canvasRenderer; } } public CanvasRenderer canvasRenderer { get { Initialize(); return _canvasRenderer; } }
#if TMP_PRESENT #if TMP_PRESENT
/// <summary> /// <summary>
@ -68,7 +68,7 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// The RectTransform attached to this GameObject. /// The RectTransform attached to this GameObject.
/// </summary> /// </summary>
public RectTransform rectTransform { get { Initialize (); return _rectTransform; } } public RectTransform rectTransform { get { Initialize(); return _rectTransform; } }
#if UNITY_5_6_OR_NEWER #if UNITY_5_6_OR_NEWER
/// <summary> /// <summary>
@ -146,7 +146,7 @@ namespace Coffee.UIExtensions
#endif #endif
if (graphic) if (graphic)
{ {
_materials [0] = graphic.material; _materials[0] = graphic.material;
return _materials; return _materials;
} }
else else
@ -160,7 +160,7 @@ namespace Coffee.UIExtensions
/// Call used to modify mesh. (legacy) /// Call used to modify mesh. (legacy)
/// </summary> /// </summary>
/// <param name="mesh">Mesh.</param> /// <param name="mesh">Mesh.</param>
public virtual void ModifyMesh (Mesh mesh) public virtual void ModifyMesh(Mesh mesh)
{ {
} }
@ -168,14 +168,14 @@ namespace Coffee.UIExtensions
/// Call used to modify mesh. /// Call used to modify mesh.
/// </summary> /// </summary>
/// <param name="vh">VertexHelper.</param> /// <param name="vh">VertexHelper.</param>
public virtual void ModifyMesh (VertexHelper vh) public virtual void ModifyMesh(VertexHelper vh)
{ {
} }
/// <summary> /// <summary>
/// Mark the vertices as dirty. /// Mark the vertices as dirty.
/// </summary> /// </summary>
public virtual void SetVerticesDirty () public virtual void SetVerticesDirty()
{ {
#if TMP_PRESENT #if TMP_PRESENT
if (textMeshPro) if (textMeshPro)
@ -213,11 +213,11 @@ namespace Coffee.UIExtensions
#endif #endif
if (graphic) if (graphic)
{ {
graphic.SetVerticesDirty (); graphic.SetVerticesDirty();
} }
} }
public void ShowTMProWarning (Shader shader, Shader mobileShader, Shader spriteShader, System.Action<Material> onCreatedMaterial) public void ShowTMProWarning(Shader shader, Shader mobileShader, Shader spriteShader, System.Action<Material> onCreatedMaterial)
{ {
#if UNITY_EDITOR && TMP_PRESENT #if UNITY_EDITOR && TMP_PRESENT
if(!textMeshPro || !textMeshPro.fontSharedMaterial) if(!textMeshPro || !textMeshPro.fontSharedMaterial)
@ -324,14 +324,14 @@ namespace Coffee.UIExtensions
protected virtual bool isLegacyMeshModifier { get { return false; } } protected virtual bool isLegacyMeshModifier { get { return false; } }
protected virtual void Initialize () protected virtual void Initialize()
{ {
if (!_initialized) if (!_initialized)
{ {
_initialized = true; _initialized = true;
_graphic = _graphic ?? GetComponent<Graphic> (); _graphic = _graphic ?? GetComponent<Graphic>();
_canvasRenderer = _canvasRenderer ?? GetComponent<CanvasRenderer> (); _canvasRenderer = _canvasRenderer ?? GetComponent<CanvasRenderer>();
_rectTransform = _rectTransform ?? GetComponent<RectTransform> (); _rectTransform = _rectTransform ?? GetComponent<RectTransform>();
#if TMP_PRESENT #if TMP_PRESENT
_textMeshPro = _textMeshPro ?? GetComponent<TMP_Text> (); _textMeshPro = _textMeshPro ?? GetComponent<TMP_Text> ();
#endif #endif
@ -341,10 +341,10 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// This function is called when the object becomes enabled and active. /// This function is called when the object becomes enabled and active.
/// </summary> /// </summary>
protected override void OnEnable () protected override void OnEnable()
{ {
_initialized = false; _initialized = false;
SetVerticesDirty (); SetVerticesDirty();
#if TMP_PRESENT #if TMP_PRESENT
if (textMeshPro) if (textMeshPro)
{ {
@ -366,7 +366,7 @@ namespace Coffee.UIExtensions
var canvas = graphic.canvas; var canvas = graphic.canvas;
if (canvas && (canvas.additionalShaderChannels & channels) != channels) if (canvas && (canvas.additionalShaderChannels & channels) != channels)
{ {
Debug.LogWarningFormat (this, "Enable {1} of Canvas.additionalShaderChannels to use {0}.", GetType ().Name, channels); Debug.LogWarningFormat(this, "Enable {1} of Canvas.additionalShaderChannels to use {0}.", GetType().Name, channels);
} }
} }
#endif #endif
@ -375,12 +375,12 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// This function is called when the behaviour becomes disabled () or inactive. /// This function is called when the behaviour becomes disabled () or inactive.
/// </summary> /// </summary>
protected override void OnDisable () protected override void OnDisable()
{ {
#if TMP_PRESENT #if TMP_PRESENT
TMPro_EventManager.TEXT_CHANGED_EVENT.Remove (OnTextChanged); TMPro_EventManager.TEXT_CHANGED_EVENT.Remove (OnTextChanged);
#endif #endif
SetVerticesDirty (); SetVerticesDirty();
#if UNITY_EDITOR && TMP_PRESENT #if UNITY_EDITOR && TMP_PRESENT
if (graphic && textMeshPro) if (graphic && textMeshPro)
@ -394,7 +394,7 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// LateUpdate is called every frame, if the Behaviour is enabled. /// LateUpdate is called every frame, if the Behaviour is enabled.
/// </summary> /// </summary>
protected virtual void LateUpdate () protected virtual void LateUpdate()
{ {
#if TMP_PRESENT #if TMP_PRESENT
if (textMeshPro) if (textMeshPro)
@ -411,18 +411,18 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// Callback for when properties have been changed by animation. /// Callback for when properties have been changed by animation.
/// </summary> /// </summary>
protected override void OnDidApplyAnimationProperties () protected override void OnDidApplyAnimationProperties()
{ {
SetVerticesDirty (); SetVerticesDirty();
} }
#if UNITY_EDITOR #if UNITY_EDITOR
/// <summary> /// <summary>
/// This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only). /// This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only).
/// </summary> /// </summary>
protected override void OnValidate () protected override void OnValidate()
{ {
SetVerticesDirty (); SetVerticesDirty();
} }
#endif #endif
@ -434,7 +434,7 @@ namespace Coffee.UIExtensions
CanvasRenderer _canvasRenderer; CanvasRenderer _canvasRenderer;
RectTransform _rectTransform; RectTransform _rectTransform;
Graphic _graphic; Graphic _graphic;
Material [] _materials = new Material [1]; Material[] _materials = new Material[1];
#if TMP_PRESENT #if TMP_PRESENT
bool _isTextMeshProActive; bool _isTextMeshProActive;
@ -532,12 +532,12 @@ namespace Coffee.UIExtensions
mesh.GetTangents (s_Tangents); mesh.GetTangents (s_Tangents);
mesh.GetIndices (s_Indices, 0); mesh.GetIndices (s_Indices, 0);
#if UNITY_2017_1_OR_NEWER #if UNITY_2017_1_OR_NEWER
mesh.GetUVs (2, s_Uv2); mesh.GetUVs (2, s_Uv2);
mesh.GetUVs (3, s_Uv3); mesh.GetUVs (3, s_Uv3);
bool useUv2 = 0 < s_Uv2.Count; bool useUv2 = 0 < s_Uv2.Count;
bool useUv3 = 0 < s_Uv3.Count; bool useUv3 = 0 < s_Uv3.Count;
#endif #endif
s_UIVertices.Clear(); s_UIVertices.Clear();
UIVertex v = default(UIVertex); UIVertex v = default(UIVertex);
@ -547,12 +547,12 @@ namespace Coffee.UIExtensions
v.color = s_Colors[i]; v.color = s_Colors[i];
v.uv0 = s_Uv0[i]; v.uv0 = s_Uv0[i];
v.uv1 = s_Uv1[i]; v.uv1 = s_Uv1[i];
#if UNITY_2017_1_OR_NEWER #if UNITY_2017_1_OR_NEWER
if (useUv2 && i < s_Uv2.Count) if (useUv2 && i < s_Uv2.Count)
v.uv2 = s_Uv2[i]; v.uv2 = s_Uv2[i];
if (useUv3 && i < s_Uv3.Count) if (useUv3 && i < s_Uv3.Count)
v.uv3 = s_Uv3[i]; v.uv3 = s_Uv3[i];
#endif #endif
v.normal = s_Normals[i]; v.normal = s_Normals[i];
v.tangent = s_Tangents[i]; v.tangent = s_Tangents[i];

View File

@ -16,12 +16,12 @@ namespace Coffee.UIExtensions
public static class EffectAreaExtensions public static class EffectAreaExtensions
{ {
static readonly Rect rectForCharacter = new Rect(0, 0, 1, 1); static readonly Rect rectForCharacter = new Rect(0, 0, 1, 1);
static readonly Vector2 [] splitedCharacterPosition = { Vector2.up, Vector2.one, Vector2.right, Vector2.zero }; static readonly Vector2[] splitedCharacterPosition = { Vector2.up, Vector2.one, Vector2.right, Vector2.zero };
/// <summary> /// <summary>
/// Gets effect for area. /// Gets effect for area.
/// </summary> /// </summary>
public static Rect GetEffectArea (this EffectArea area, VertexHelper vh, Rect rectangle, float aspectRatio = -1) public static Rect GetEffectArea(this EffectArea area, VertexHelper vh, Rect rectangle, float aspectRatio = -1)
{ {
Rect rect = default(Rect); Rect rect = default(Rect);
switch (area) switch (area)
@ -34,7 +34,7 @@ namespace Coffee.UIExtensions
break; break;
case EffectArea.Fit: case EffectArea.Fit:
// Fit to contents. // Fit to contents.
UIVertex vertex = default (UIVertex); UIVertex vertex = default(UIVertex);
float xMin = float.MaxValue; float xMin = float.MaxValue;
float yMin = float.MaxValue; float yMin = float.MaxValue;
float xMax = float.MinValue; float xMax = float.MinValue;
@ -49,7 +49,7 @@ namespace Coffee.UIExtensions
xMax = Mathf.Max(xMax, x); xMax = Mathf.Max(xMax, x);
yMax = Mathf.Max(yMax, y); yMax = Mathf.Max(yMax, y);
} }
rect.Set (xMin, yMin, xMax - xMin, yMax - yMin); rect.Set(xMin, yMin, xMax - xMin, yMax - yMin);
break; break;
default: default:
rect = rectangle; rect = rectangle;
@ -57,7 +57,7 @@ namespace Coffee.UIExtensions
} }
if(0 < aspectRatio) if (0 < aspectRatio)
{ {
if (rect.width < rect.height) if (rect.width < rect.height)
{ {
@ -74,34 +74,34 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// Gets position factor for area. /// Gets position factor for area.
/// </summary> /// </summary>
public static void GetPositionFactor (this EffectArea area, int index, Rect rect, Vector2 position, bool isText, bool isTMPro, out float x, out float y) public static void GetPositionFactor(this EffectArea area, int index, Rect rect, Vector2 position, bool isText, bool isTMPro, out float x, out float y)
{ {
if (isText && area == EffectArea.Character) if (isText && area == EffectArea.Character)
{ {
index = isTMPro ? (index + 3) % 4 : index % 4; index = isTMPro ? (index + 3) % 4 : index % 4;
x = splitedCharacterPosition [index].x; x = splitedCharacterPosition[index].x;
y = splitedCharacterPosition [index].y; y = splitedCharacterPosition[index].y;
} }
else if (area == EffectArea.Fit) else if (area == EffectArea.Fit)
{ {
x = Mathf.Clamp01 ((position.x - rect.xMin) / rect.width); x = Mathf.Clamp01((position.x - rect.xMin) / rect.width);
y = Mathf.Clamp01 ((position.y - rect.yMin) / rect.height); y = Mathf.Clamp01((position.y - rect.yMin) / rect.height);
} }
else else
{ {
x = Mathf.Clamp01 (position.x / rect.width + 0.5f); x = Mathf.Clamp01(position.x / rect.width + 0.5f);
y = Mathf.Clamp01 (position.y / rect.height + 0.5f); y = Mathf.Clamp01(position.y / rect.height + 0.5f);
} }
} }
/// <summary> /// <summary>
/// Normalize vertex position by local matrix. /// Normalize vertex position by local matrix.
/// </summary> /// </summary>
public static void GetNormalizedFactor (this EffectArea area, int index, Matrix2x3 matrix, Vector2 position, bool isText, out Vector2 nomalizedPos) public static void GetNormalizedFactor(this EffectArea area, int index, Matrix2x3 matrix, Vector2 position, bool isText, out Vector2 nomalizedPos)
{ {
if (isText && area == EffectArea.Character) if (isText && area == EffectArea.Character)
{ {
nomalizedPos = matrix * splitedCharacterPosition [(index + 3) % 4]; nomalizedPos = matrix * splitedCharacterPosition[(index + 3) % 4];
} }
else else
{ {

View File

@ -1,6 +1,6 @@
using UnityEngine; using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
{ {
@ -31,7 +31,7 @@ namespace Coffee.UIExtensions
/// Gets or sets the duration. /// Gets or sets the duration.
/// </summary> /// </summary>
[Tooltip("Duration.")] [Tooltip("Duration.")]
[Range(0.01f,10f)] [Range(0.01f, 10f)]
public float duration = 1; public float duration = 1;
/// <summary> /// <summary>
@ -44,7 +44,7 @@ namespace Coffee.UIExtensions
/// Gets or sets the delay before looping. /// Gets or sets the delay before looping.
/// </summary> /// </summary>
[Tooltip("Delay before looping.")] [Tooltip("Delay before looping.")]
[Range(0f,10f)] [Range(0f, 10f)]
public float loopDelay = 0; public float loopDelay = 0;
/// <summary> /// <summary>

View File

@ -1,6 +1,6 @@
#if UNITY_EDITOR #if UNITY_EDITOR
using System.IO;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using UnityEditor; using UnityEditor;
@ -114,7 +114,7 @@ namespace Coffee.UIExtensions
s_StringBuilder.Append("[Separated] "); s_StringBuilder.Append("[Separated] ");
#endif #endif
s_StringBuilder.Append(Path.GetFileName(shader.name)); s_StringBuilder.Append(Path.GetFileName(shader.name));
foreach (object mode in append.Where(x=>0<(int)x)) foreach (object mode in append.Where(x => 0 < (int)x))
{ {
s_StringBuilder.Append("-"); s_StringBuilder.Append("-");
s_StringBuilder.Append(mode.ToString()); s_StringBuilder.Append(mode.ToString());

View File

@ -22,7 +22,7 @@ namespace Coffee.UIExtensions
m12 = dx * sin + dy * cos + center; m12 = dx * sin + dy * cos + center;
} }
public static Vector2 operator*(Matrix2x3 m, Vector2 v) public static Vector2 operator *(Matrix2x3 m, Vector2 v)
{ {
return new Vector2( return new Vector2(
(m.m00 * v.x) + (m.m01 * v.y) + m.m02, (m.m00 * v.x) + (m.m01 * v.y) + m.m02,

View File

@ -1,6 +1,4 @@
using System.Collections; using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
public static class Packer public static class Packer
{ {

View File

@ -1,8 +1,6 @@
using System.Collections; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.Rendering;
using System;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
{ {
@ -55,7 +53,7 @@ namespace Coffee.UIExtensions
if (target.parameterIndex <= 0 && 0 < _stack.Count) if (target.parameterIndex <= 0 && 0 < _stack.Count)
{ {
target.parameterIndex = _stack.Pop(); target.parameterIndex = _stack.Pop();
// Debug.LogFormat("<color=green>@@@ Register {0} : {1}</color>", target, target.parameterIndex); // Debug.LogFormat("<color=green>@@@ Register {0} : {1}</color>", target, target.parameterIndex);
} }
} }
@ -67,7 +65,7 @@ namespace Coffee.UIExtensions
{ {
if (0 < target.parameterIndex) if (0 < target.parameterIndex)
{ {
// Debug.LogFormat("<color=red>@@@ Unregister {0} : {1}</color>", target, target.parameterIndex); // Debug.LogFormat("<color=red>@@@ Unregister {0} : {1}</color>", target, target.parameterIndex);
_stack.Push(target.parameterIndex); _stack.Push(target.parameterIndex);
target.parameterIndex = 0; target.parameterIndex = 0;
} }

View File

@ -52,7 +52,7 @@ namespace Coffee.UIExtensions
/// </summary> /// </summary>
protected override void OnValidate() protected override void OnValidate()
{ {
base.OnValidate (); base.OnValidate();
var mat = GetMaterial(); var mat = GetMaterial();
if (m_EffectMaterial != mat) if (m_EffectMaterial != mat)
@ -62,8 +62,8 @@ namespace Coffee.UIExtensions
} }
ModifyMaterial(); ModifyMaterial();
SetVerticesDirty (); SetVerticesDirty();
SetDirty (); SetDirty();
} }
public void OnBeforeSerialize() public void OnBeforeSerialize()
@ -123,7 +123,7 @@ namespace Coffee.UIExtensions
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable (); base.OnEnable();
if (ptex != null) if (ptex != null)
{ {
@ -139,9 +139,9 @@ namespace Coffee.UIExtensions
/// </summary> /// </summary>
protected override void OnDisable() protected override void OnDisable()
{ {
base.OnDisable (); base.OnDisable();
ModifyMaterial (); ModifyMaterial();
SetVerticesDirty(); SetVerticesDirty();
if (ptex != null) if (ptex != null)
{ {

View File

@ -1,5 +1,4 @@
using System.Collections; using System.Collections.Generic;
using System.Collections.Generic;
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
@ -7,59 +6,59 @@ namespace Coffee.UIExtensions.Editors
{ {
public class BaseMeshEffectEditor : Editor public class BaseMeshEffectEditor : Editor
{ {
List<MaterialEditor> _materialEditors = new List<MaterialEditor> (); List<MaterialEditor> _materialEditors = new List<MaterialEditor>();
protected virtual void OnEnable () protected virtual void OnEnable()
{ {
ClearMaterialEditors (); ClearMaterialEditors();
} }
protected virtual void OnDisable () protected virtual void OnDisable()
{ {
ClearMaterialEditors (); ClearMaterialEditors();
} }
void ClearMaterialEditors () void ClearMaterialEditors()
{ {
foreach (var e in _materialEditors) foreach (var e in _materialEditors)
{ {
if (e) if (e)
{ {
DestroyImmediate (e); DestroyImmediate(e);
} }
} }
_materialEditors.Clear (); _materialEditors.Clear();
} }
protected void ShowMaterialEditors (Material [] materials, int startIndex, int count) protected void ShowMaterialEditors(Material[] materials, int startIndex, int count)
{ {
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
if (_materialEditors.Count == i) if (_materialEditors.Count == i)
{ {
_materialEditors.Add (null); _materialEditors.Add(null);
} }
var mat = materials [startIndex + i]; var mat = materials[startIndex + i];
var editor = _materialEditors [i]; var editor = _materialEditors[i];
if (editor && editor.target != mat) if (editor && editor.target != mat)
{ {
DestroyImmediate (editor); DestroyImmediate(editor);
editor = null; editor = null;
} }
if (!editor) if (!editor)
{ {
editor = _materialEditors [i] = Editor.CreateEditor (mat) as MaterialEditor; editor = _materialEditors[i] = Editor.CreateEditor(mat) as MaterialEditor;
} }
editor.DrawHeader (); editor.DrawHeader();
editor.OnInspectorGUI (); editor.OnInspectorGUI();
} }
} }
protected void ShowCanvasChannelsWarning () protected void ShowCanvasChannelsWarning()
{ {
BaseMeshEffect effect = target as BaseMeshEffect; BaseMeshEffect effect = target as BaseMeshEffect;
if (!effect || !effect.graphic) if (!effect || !effect.graphic)
@ -72,13 +71,13 @@ namespace Coffee.UIExtensions.Editors
var canvas = effect.graphic.canvas; var canvas = effect.graphic.canvas;
if (canvas && (canvas.additionalShaderChannels & channels) != channels) if (canvas && (canvas.additionalShaderChannels & channels) != channels)
{ {
EditorGUILayout.BeginHorizontal (); EditorGUILayout.BeginHorizontal();
EditorGUILayout.HelpBox (string.Format ("Enable {1} of Canvas.additionalShaderChannels to use {0}.", effect.GetType ().Name, channels), MessageType.Warning); EditorGUILayout.HelpBox(string.Format("Enable {1} of Canvas.additionalShaderChannels to use {0}.", effect.GetType().Name, channels), MessageType.Warning);
if (GUILayout.Button ("Fix")) if (GUILayout.Button("Fix"))
{ {
canvas.additionalShaderChannels |= channels; canvas.additionalShaderChannels |= channels;
} }
EditorGUILayout.EndHorizontal (); EditorGUILayout.EndHorizontal();
} }
#endif #endif
} }

View File

@ -1,10 +1,8 @@
using System.Collections; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using UnityEditor; using UnityEditor;
using UnityEngine;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -24,7 +22,7 @@ namespace Coffee.UIExtensions.Editors
}; };
#if UNITY_EDITOR #if UNITY_EDITOR
[UnityEditor.InitializeOnLoadMethod] [UnityEditor.InitializeOnLoadMethod]
static void RemoveFiles() static void RemoveFiles()
{ {
@ -48,6 +46,6 @@ namespace Coffee.UIExtensions.Editors
UnityEngine.Debug.Log(sb); UnityEngine.Debug.Log(sb);
} }
} }
#endif #endif
} }
} }

View File

@ -1,9 +1,6 @@
using UnityEditor; using System.Linq;
using UnityEditorInternal; using UnityEditor;
using UnityEngine; using UnityEngine;
using System.Linq;
using System.Collections.Generic;
using UnityEngine.UI;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -24,7 +21,7 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable (); base.OnEnable();
_spMaterial = serializedObject.FindProperty("m_EffectMaterial"); _spMaterial = serializedObject.FindProperty("m_EffectMaterial");
_spEffectFactor = serializedObject.FindProperty("m_EffectFactor"); _spEffectFactor = serializedObject.FindProperty("m_EffectFactor");
@ -45,11 +42,11 @@ namespace Coffee.UIExtensions.Editors
_spLoopDelay = player.FindPropertyRelative("loopDelay"); _spLoopDelay = player.FindPropertyRelative("loopDelay");
_spUpdateMode = player.FindPropertyRelative("updateMode"); _spUpdateMode = player.FindPropertyRelative("updateMode");
s_NoiseTexId = Shader.PropertyToID ("_NoiseTex"); s_NoiseTexId = Shader.PropertyToID("_NoiseTex");
_shader = Shader.Find ("TextMeshPro/Distance Field (UIDissolve)"); _shader = Shader.Find("TextMeshPro/Distance Field (UIDissolve)");
_mobileShader = Shader.Find ("TextMeshPro/Mobile/Distance Field (UIDissolve)"); _mobileShader = Shader.Find("TextMeshPro/Mobile/Distance Field (UIDissolve)");
_spriteShader = Shader.Find ("TextMeshPro/Sprite (UIDissolve)"); _spriteShader = Shader.Find("TextMeshPro/Sprite (UIDissolve)");
} }
/// <summary> /// <summary>
@ -57,25 +54,25 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
public override void OnInspectorGUI() public override void OnInspectorGUI()
{ {
foreach (var d in targets.Cast<UIDissolve> ()) foreach (var d in targets.Cast<UIDissolve>())
{ {
var mat = d.material; var mat = d.material;
if (d.isTMPro && mat && mat.HasProperty(s_NoiseTexId)) if (d.isTMPro && mat && mat.HasProperty(s_NoiseTexId))
{ {
ColorMode colorMode = ColorMode colorMode =
mat.IsKeywordEnabled ("ADD") ? ColorMode.Add mat.IsKeywordEnabled("ADD") ? ColorMode.Add
: mat.IsKeywordEnabled ("SUBTRACT") ? ColorMode.Subtract : mat.IsKeywordEnabled("SUBTRACT") ? ColorMode.Subtract
: mat.IsKeywordEnabled ("FILL") ? ColorMode.Fill : mat.IsKeywordEnabled("FILL") ? ColorMode.Fill
: ColorMode.Multiply; : ColorMode.Multiply;
Texture noiseTexture = mat.GetTexture(s_NoiseTexId); Texture noiseTexture = mat.GetTexture(s_NoiseTexId);
if (d.colorMode != colorMode || d.noiseTexture != noiseTexture) if (d.colorMode != colorMode || d.noiseTexture != noiseTexture)
{ {
var so = new SerializedObject (d); var so = new SerializedObject(d);
so.FindProperty ("m_ColorMode").intValue = (int)colorMode; so.FindProperty("m_ColorMode").intValue = (int)colorMode;
so.FindProperty ("m_NoiseTexture").objectReferenceValue = noiseTexture; so.FindProperty("m_NoiseTexture").objectReferenceValue = noiseTexture;
so.ApplyModifiedProperties (); so.ApplyModifiedProperties();
} }
} }
} }
@ -98,10 +95,10 @@ namespace Coffee.UIExtensions.Editors
EditorGUILayout.PropertyField(_spColor); EditorGUILayout.PropertyField(_spColor);
bool isAnyTMPro = targets.Cast<UIDissolve>().Any(x => x.isTMPro); bool isAnyTMPro = targets.Cast<UIDissolve>().Any(x => x.isTMPro);
using (new EditorGUI.DisabledGroupScope (isAnyTMPro)) using (new EditorGUI.DisabledGroupScope(isAnyTMPro))
{ {
EditorGUILayout.PropertyField (_spColorMode); EditorGUILayout.PropertyField(_spColorMode);
EditorGUILayout.PropertyField (_spNoiseTexture); EditorGUILayout.PropertyField(_spNoiseTexture);
} }
//================ //================
@ -139,16 +136,17 @@ namespace Coffee.UIExtensions.Editors
} }
var c = target as UIDissolve; var c = target as UIDissolve;
c.ShowTMProWarning (_shader, _mobileShader, _spriteShader, mat => { c.ShowTMProWarning(_shader, _mobileShader, _spriteShader, mat =>
if(mat.shader == _spriteShader) {
if (mat.shader == _spriteShader)
{ {
mat.shaderKeywords = c.material.shaderKeywords; mat.shaderKeywords = c.material.shaderKeywords;
mat.SetTexture ("_NoiseTex", c.material.GetTexture ("_NoiseTex")); mat.SetTexture("_NoiseTex", c.material.GetTexture("_NoiseTex"));
} }
}); });
ShowCanvasChannelsWarning (); ShowCanvasChannelsWarning();
ShowMaterialEditors (c.materials, 1, c.materials.Length - 1); ShowMaterialEditors(c.materials, 1, c.materials.Length - 1);
serializedObject.ApplyModifiedProperties(); serializedObject.ApplyModifiedProperties();

View File

@ -1,8 +1,7 @@
using UnityEditor; using System;
using UnityEditorInternal;
using UnityEngine;
using System.Linq; using System.Linq;
using System; using UnityEditor;
using UnityEngine;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -13,7 +12,7 @@ namespace Coffee.UIExtensions.Editors
[CanEditMultipleObjects] [CanEditMultipleObjects]
public class UIEffectEditor : BaseMeshEffectEditor public class UIEffectEditor : BaseMeshEffectEditor
{ {
static readonly GUIContent contentEffectColor = new GUIContent ("Effect Color"); static readonly GUIContent contentEffectColor = new GUIContent("Effect Color");
//################################ //################################
@ -59,19 +58,21 @@ namespace Coffee.UIExtensions.Editors
EditorGUI.indentLevel++; EditorGUI.indentLevel++;
SerializedProperty spColor = serializedObject.FindProperty(colorProperty); SerializedProperty spColor = serializedObject.FindProperty(colorProperty);
if (spColor == null && serializedObject.targetObject is UIEffect) { if (spColor == null && serializedObject.targetObject is UIEffect)
spColor = new SerializedObject (serializedObject.targetObjects.Select(x=>(x as UIEffect).targetGraphic).ToArray()).FindProperty(colorProperty); {
spColor = new SerializedObject(serializedObject.targetObjects.Select(x => (x as UIEffect).targetGraphic).ToArray()).FindProperty(colorProperty);
} }
EditorGUI.BeginChangeCheck (); EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = spColor.hasMultipleDifferentValues; EditorGUI.showMixedValue = spColor.hasMultipleDifferentValues;
#if UNITY_2018_1_OR_NEWER #if UNITY_2018_1_OR_NEWER
spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false); spColor.colorValue = EditorGUILayout.ColorField(contentEffectColor, spColor.colorValue, true, false, false);
#else #else
spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false, null); spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false, null);
#endif #endif
if (EditorGUI.EndChangeCheck ()) { if (EditorGUI.EndChangeCheck())
spColor.serializedObject.ApplyModifiedProperties (); {
spColor.serializedObject.ApplyModifiedProperties();
} }
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ColorFactor")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ColorFactor"));
@ -102,14 +103,14 @@ namespace Coffee.UIExtensions.Editors
int GetEnum<T>(Material mat) int GetEnum<T>(Material mat)
{ {
Type type = typeof(T); Type type = typeof(T);
string[] names = System.Enum.GetNames (type); string[] names = System.Enum.GetNames(type);
int[] values = System.Enum.GetValues (type) as int[]; int[] values = System.Enum.GetValues(type) as int[];
int mode = 0; int mode = 0;
for(int i=0;i<names.Length;i++) for (int i = 0; i < names.Length; i++)
{ {
if (mat.IsKeywordEnabled (names [i].ToUpper())) if (mat.IsKeywordEnabled(names[i].ToUpper()))
mode = values [i]; mode = values[i];
} }
return mode; return mode;
} }
@ -120,23 +121,23 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
public override void OnInspectorGUI() public override void OnInspectorGUI()
{ {
foreach (var d in targets.Cast<UIEffect> ()) foreach (var d in targets.Cast<UIEffect>())
{ {
var mat = d.material; var mat = d.material;
if (d.isTMPro && mat) if (d.isTMPro && mat)
{ {
var so = new SerializedObject (d); var so = new SerializedObject(d);
EffectMode eMode = (EffectMode)GetEnum<EffectMode> (mat); EffectMode eMode = (EffectMode)GetEnum<EffectMode>(mat);
ColorMode cMode = (ColorMode)GetEnum<ColorMode> (mat); ColorMode cMode = (ColorMode)GetEnum<ColorMode>(mat);
BlurMode bMode = (BlurMode)GetEnum<BlurMode> (mat); BlurMode bMode = (BlurMode)GetEnum<BlurMode>(mat);
bool aBlur = mat.IsKeywordEnabled("EX"); bool aBlur = mat.IsKeywordEnabled("EX");
if (d.effectMode != eMode || d.colorMode != cMode || d.blurMode != bMode || so.FindProperty ("m_AdvancedBlur").boolValue != aBlur) if (d.effectMode != eMode || d.colorMode != cMode || d.blurMode != bMode || so.FindProperty("m_AdvancedBlur").boolValue != aBlur)
{ {
so.FindProperty ("m_EffectMode").intValue = (int)eMode; so.FindProperty("m_EffectMode").intValue = (int)eMode;
so.FindProperty ("m_ColorMode").intValue = (int)cMode; so.FindProperty("m_ColorMode").intValue = (int)cMode;
so.FindProperty ("m_BlurMode").intValue = (int)bMode; so.FindProperty("m_BlurMode").intValue = (int)bMode;
so.FindProperty ("m_AdvancedBlur").boolValue = aBlur; so.FindProperty("m_AdvancedBlur").boolValue = aBlur;
so.ApplyModifiedProperties (); so.ApplyModifiedProperties();
} }
} }
} }
@ -182,19 +183,21 @@ namespace Coffee.UIExtensions.Editors
EditorGUI.indentLevel++; EditorGUI.indentLevel++;
SerializedProperty spColor = serializedObject.FindProperty("m_Color"); SerializedProperty spColor = serializedObject.FindProperty("m_Color");
if (spColor == null && serializedObject.targetObject is UIEffect) { if (spColor == null && serializedObject.targetObject is UIEffect)
spColor = new SerializedObject (serializedObject.targetObjects.Select(x=>(x as UIEffect).targetGraphic).ToArray()).FindProperty(!isAnyTMPro ? "m_Color" : "m_fontColor"); {
spColor = new SerializedObject(serializedObject.targetObjects.Select(x => (x as UIEffect).targetGraphic).ToArray()).FindProperty(!isAnyTMPro ? "m_Color" : "m_fontColor");
} }
EditorGUI.BeginChangeCheck (); EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = spColor.hasMultipleDifferentValues; EditorGUI.showMixedValue = spColor.hasMultipleDifferentValues;
#if UNITY_2018_1_OR_NEWER #if UNITY_2018_1_OR_NEWER
spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false); spColor.colorValue = EditorGUILayout.ColorField(contentEffectColor, spColor.colorValue, true, false, false);
#else #else
spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false, null); spColor.colorValue = EditorGUILayout.ColorField (contentEffectColor, spColor.colorValue, true, false, false, null);
#endif #endif
if (EditorGUI.EndChangeCheck ()) { if (EditorGUI.EndChangeCheck())
spColor.serializedObject.ApplyModifiedProperties (); {
spColor.serializedObject.ApplyModifiedProperties();
} }
EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ColorFactor")); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_ColorFactor"));
@ -222,10 +225,10 @@ namespace Coffee.UIExtensions.Editors
serializedObject.ApplyModifiedProperties(); serializedObject.ApplyModifiedProperties();
c.ShowTMProWarning (_shader, _mobileShader, _spriteShader, mat => {}); c.ShowTMProWarning(_shader, _mobileShader, _spriteShader, mat => { });
ShowCanvasChannelsWarning (); ShowCanvasChannelsWarning();
ShowMaterialEditors (c.materials, 1, c.materials.Length - 1); ShowMaterialEditors(c.materials, 1, c.materials.Length - 1);
serializedObject.ApplyModifiedProperties(); serializedObject.ApplyModifiedProperties();
} }
@ -235,11 +238,11 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable (); base.OnEnable();
_shader = Shader.Find ("TextMeshPro/Distance Field (UIEffect)"); _shader = Shader.Find("TextMeshPro/Distance Field (UIEffect)");
_mobileShader = Shader.Find ("TextMeshPro/Mobile/Distance Field (UIEffect)"); _mobileShader = Shader.Find("TextMeshPro/Mobile/Distance Field (UIEffect)");
_spriteShader = Shader.Find ("TextMeshPro/Sprite (UIEffect)"); _spriteShader = Shader.Find("TextMeshPro/Sprite (UIEffect)");
} }
//################################ //################################

View File

@ -1,6 +1,5 @@
using UnityEditor; using UnityEditor;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {

View File

@ -1,7 +1,5 @@
using UnityEditor; using UnityEditor;
using UnityEditorInternal;
using UnityEngine; using UnityEngine;
using System.Linq;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -20,7 +18,7 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable (); base.OnEnable();
_spMaterial = serializedObject.FindProperty("m_EffectMaterial"); _spMaterial = serializedObject.FindProperty("m_EffectMaterial");
_spTargetColor = serializedObject.FindProperty("m_TargetColor"); _spTargetColor = serializedObject.FindProperty("m_TargetColor");
@ -29,9 +27,9 @@ namespace Coffee.UIExtensions.Editors
_spSaturation = serializedObject.FindProperty("m_Saturation"); _spSaturation = serializedObject.FindProperty("m_Saturation");
_spValue = serializedObject.FindProperty("m_Value"); _spValue = serializedObject.FindProperty("m_Value");
_shader = Shader.Find ("TextMeshPro/Distance Field (UIHsvModifier)"); _shader = Shader.Find("TextMeshPro/Distance Field (UIHsvModifier)");
_mobileShader = Shader.Find ("TextMeshPro/Mobile/Distance Field (UIHsvModifier)"); _mobileShader = Shader.Find("TextMeshPro/Mobile/Distance Field (UIHsvModifier)");
_spriteShader = Shader.Find ("TextMeshPro/Sprite (UIHsvModifier)"); _spriteShader = Shader.Find("TextMeshPro/Sprite (UIHsvModifier)");
} }
@ -59,10 +57,10 @@ namespace Coffee.UIExtensions.Editors
EditorGUILayout.PropertyField(_spValue); EditorGUILayout.PropertyField(_spValue);
var c = target as UIHsvModifier; var c = target as UIHsvModifier;
c.ShowTMProWarning (_shader, _mobileShader, _spriteShader, mat => {}); c.ShowTMProWarning(_shader, _mobileShader, _spriteShader, mat => { });
ShowCanvasChannelsWarning (); ShowCanvasChannelsWarning();
ShowMaterialEditors (c.materials, 1, c.materials.Length - 1); ShowMaterialEditors(c.materials, 1, c.materials.Length - 1);
serializedObject.ApplyModifiedProperties(); serializedObject.ApplyModifiedProperties();
} }

View File

@ -1,6 +1,4 @@
using UnityEditor; using UnityEditor;
using UnityEditorInternal;
using UnityEngine;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {

View File

@ -1,7 +1,5 @@
using UnityEditor; using UnityEditor;
using UnityEditorInternal;
using UnityEngine; using UnityEngine;
using System.Linq;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -20,7 +18,7 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
protected override void OnEnable() protected override void OnEnable()
{ {
base.OnEnable (); base.OnEnable();
_spMaterial = serializedObject.FindProperty("m_EffectMaterial"); _spMaterial = serializedObject.FindProperty("m_EffectMaterial");
_spEffectFactor = serializedObject.FindProperty("m_EffectFactor"); _spEffectFactor = serializedObject.FindProperty("m_EffectFactor");
@ -39,9 +37,9 @@ namespace Coffee.UIExtensions.Editors
_spUpdateMode = player.FindPropertyRelative("updateMode"); _spUpdateMode = player.FindPropertyRelative("updateMode");
_shader = Shader.Find ("TextMeshPro/Distance Field (UIShiny)"); _shader = Shader.Find("TextMeshPro/Distance Field (UIShiny)");
_mobileShader = Shader.Find ("TextMeshPro/Mobile/Distance Field (UIShiny)"); _mobileShader = Shader.Find("TextMeshPro/Mobile/Distance Field (UIShiny)");
_spriteShader = Shader.Find ("TextMeshPro/Sprite (UIShiny)"); _spriteShader = Shader.Find("TextMeshPro/Sprite (UIShiny)");
} }
@ -102,10 +100,10 @@ namespace Coffee.UIExtensions.Editors
} }
var c = target as UIShiny; var c = target as UIShiny;
c.ShowTMProWarning (_shader, _mobileShader, _spriteShader, mat => {}); c.ShowTMProWarning(_shader, _mobileShader, _spriteShader, mat => { });
ShowCanvasChannelsWarning (); ShowCanvasChannelsWarning();
ShowMaterialEditors (c.materials, 1, c.materials.Length - 1); ShowMaterialEditors(c.materials, 1, c.materials.Length - 1);
serializedObject.ApplyModifiedProperties(); serializedObject.ApplyModifiedProperties();
} }

View File

@ -1,7 +1,6 @@
using UnityEditor; using System.Linq;
using UnityEditorInternal; using UnityEditor;
using UnityEngine; using UnityEngine;
using System.Linq;
namespace Coffee.UIExtensions.Editors namespace Coffee.UIExtensions.Editors
{ {
@ -55,32 +54,32 @@ namespace Coffee.UIExtensions.Editors
/// </summary> /// </summary>
public override void OnInspectorGUI() public override void OnInspectorGUI()
{ {
foreach (var d in targets.Cast<UITransitionEffect> ()) foreach (var d in targets.Cast<UITransitionEffect>())
{ {
var mat = d.material; var mat = d.material;
if (d.isTMPro && mat && mat.HasProperty (s_NoiseTexId)) if (d.isTMPro && mat && mat.HasProperty(s_NoiseTexId))
{ {
Texture noiseTexture = mat.GetTexture (s_NoiseTexId); Texture noiseTexture = mat.GetTexture(s_NoiseTexId);
UITransitionEffect.EffectMode mode = UITransitionEffect.EffectMode mode =
mat.IsKeywordEnabled ("CUTOFF") ? UITransitionEffect.EffectMode.Cutoff mat.IsKeywordEnabled("CUTOFF") ? UITransitionEffect.EffectMode.Cutoff
: mat.IsKeywordEnabled ("FADE") ? UITransitionEffect.EffectMode.Fade : mat.IsKeywordEnabled("FADE") ? UITransitionEffect.EffectMode.Fade
: mat.IsKeywordEnabled ("DISSOLVE") ? UITransitionEffect.EffectMode.Dissolve : mat.IsKeywordEnabled("DISSOLVE") ? UITransitionEffect.EffectMode.Dissolve
: (UITransitionEffect.EffectMode)0; : (UITransitionEffect.EffectMode)0;
if (mode == (UITransitionEffect.EffectMode)0) if (mode == (UITransitionEffect.EffectMode)0)
{ {
mode = UITransitionEffect.EffectMode.Cutoff; mode = UITransitionEffect.EffectMode.Cutoff;
mat.EnableKeyword ("CUTOFF"); mat.EnableKeyword("CUTOFF");
} }
bool hasChanged = d.transitionTexture != noiseTexture || d.effectMode != mode; bool hasChanged = d.transitionTexture != noiseTexture || d.effectMode != mode;
if (hasChanged) if (hasChanged)
{ {
var so = new SerializedObject (d); var so = new SerializedObject(d);
so.FindProperty ("m_TransitionTexture").objectReferenceValue = noiseTexture; so.FindProperty("m_TransitionTexture").objectReferenceValue = noiseTexture;
so.FindProperty ("m_EffectMode").intValue = (int)mode; so.FindProperty("m_EffectMode").intValue = (int)mode;
so.ApplyModifiedProperties (); so.ApplyModifiedProperties();
} }
} }
} }

View File

@ -1,7 +1,7 @@
using System; using System;
using UnityEngine; using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Serialization; using UnityEngine.Serialization;
using UnityEngine.UI;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
{ {
@ -23,16 +23,16 @@ namespace Coffee.UIExtensions
//################################ //################################
[Tooltip("Current location[0-1] for dissolve effect. 0 is not dissolved, 1 is completely dissolved.")] [Tooltip("Current location[0-1] for dissolve effect. 0 is not dissolved, 1 is completely dissolved.")]
[FormerlySerializedAs("m_Location")] [FormerlySerializedAs("m_Location")]
[SerializeField] [Range(0, 1)] float m_EffectFactor = 0.5f; [SerializeField][Range(0, 1)] float m_EffectFactor = 0.5f;
[Tooltip("Edge width.")] [Tooltip("Edge width.")]
[SerializeField] [Range(0, 1)] float m_Width = 0.5f; [SerializeField][Range(0, 1)] float m_Width = 0.5f;
[Tooltip("Edge softness.")] [Tooltip("Edge softness.")]
[SerializeField] [Range(0, 1)] float m_Softness = 0.5f; [SerializeField][Range(0, 1)] float m_Softness = 0.5f;
[Tooltip("Edge color.")] [Tooltip("Edge color.")]
[SerializeField] [ColorUsage(false)] Color m_Color = new Color(0.0f, 0.25f, 1.0f); [SerializeField][ColorUsage(false)] Color m_Color = new Color(0.0f, 0.25f, 1.0f);
[Tooltip("Edge color effect mode.")] [Tooltip("Edge color effect mode.")]
[SerializeField] ColorMode m_ColorMode = ColorMode.Add; [SerializeField] ColorMode m_ColorMode = ColorMode.Add;
@ -54,12 +54,14 @@ namespace Coffee.UIExtensions
[FormerlySerializedAs("m_ReverseAnimation")] [FormerlySerializedAs("m_ReverseAnimation")]
[SerializeField] bool m_Reverse = false; [SerializeField] bool m_Reverse = false;
#pragma warning disable 0414 #pragma warning disable 0414
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField][Range(0.1f, 10)] float m_Duration = 1; [SerializeField][Range(0.1f, 10)] float m_Duration = 1;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] AnimatorUpdateMode m_UpdateMode = AnimatorUpdateMode.Normal; [SerializeField] AnimatorUpdateMode m_UpdateMode = AnimatorUpdateMode.Normal;
#pragma warning restore 0414 #pragma warning restore 0414
//################################ //################################
@ -197,7 +199,7 @@ namespace Coffee.UIExtensions
if (m_KeepAspectRatio != value) if (m_KeepAspectRatio != value)
{ {
m_KeepAspectRatio = value; m_KeepAspectRatio = value;
SetVerticesDirty (); SetVerticesDirty();
} }
} }
} }
@ -310,28 +312,28 @@ namespace Coffee.UIExtensions
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
vh.PopulateUIVertex(ref vertex, i); vh.PopulateUIVertex(ref vertex, i);
m_EffectArea.GetPositionFactor (i, rect, vertex.position, isText, isTMPro, out x, out y); m_EffectArea.GetPositionFactor(i, rect, vertex.position, isText, isTMPro, out x, out y);
vertex.uv0 = new Vector2( vertex.uv0 = new Vector2(
Packer.ToFloat(vertex.uv0.x, vertex.uv0.y), Packer.ToFloat(vertex.uv0.x, vertex.uv0.y),
Packer.ToFloat(x, y, normalizedIndex) Packer.ToFloat(x, y, normalizedIndex)
); );
// if(!isTMPro) // if(!isTMPro)
// { // {
// vertex.uv0 = new Vector2( // vertex.uv0 = new Vector2(
// Packer.ToFloat(vertex.uv0.x, vertex.uv0.y), // Packer.ToFloat(vertex.uv0.x, vertex.uv0.y),
// Packer.ToFloat(x, y, normalizedIndex) // Packer.ToFloat(x, y, normalizedIndex)
// ); // );
// } // }
// #if UNITY_5_6_OR_NEWER // #if UNITY_5_6_OR_NEWER
// else // else
// { // {
// vertex.uv2 = new Vector2 ( // vertex.uv2 = new Vector2 (
// Packer.ToFloat (x, y, normalizedIndex), // Packer.ToFloat (x, y, normalizedIndex),
// 0 // 0
// ); // );
// } // }
// #endif // #endif
vh.SetUIVertex(vertex, i); vh.SetUIVertex(vertex, i);
} }
@ -339,9 +341,9 @@ namespace Coffee.UIExtensions
protected override void SetDirty() protected override void SetDirty()
{ {
foreach(var m in materials) foreach (var m in materials)
{ {
ptex.RegisterMaterial (m); ptex.RegisterMaterial(m);
} }
ptex.SetData(this, 0, m_EffectFactor); // param1.x : location ptex.SetData(this, 0, m_EffectFactor); // param1.x : location
ptex.SetData(this, 1, m_Width); // param1.y : width ptex.SetData(this, 1, m_Width); // param1.y : width
@ -385,7 +387,7 @@ namespace Coffee.UIExtensions
protected override void OnDisable() protected override void OnDisable()
{ {
base.OnDisable (); base.OnDisable();
MaterialCache.Unregister(_materialCache); MaterialCache.Unregister(_materialCache);
_materialCache = null; _materialCache = null;
_player.OnDisable(); _player.OnDisable();
@ -406,7 +408,7 @@ namespace Coffee.UIExtensions
return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName), m_ColorMode); return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName), m_ColorMode);
} }
#pragma warning disable 0612 #pragma warning disable 0612
protected override void UpgradeIfNeeded() protected override void UpgradeIfNeeded()
{ {
// Upgrade for v3.0.0 // Upgrade for v3.0.0
@ -419,7 +421,7 @@ namespace Coffee.UIExtensions
_player.updateMode = m_UpdateMode; _player.updateMode = m_UpdateMode;
} }
} }
#pragma warning restore 0612 #pragma warning restore 0612
#endif #endif
//################################ //################################
@ -427,6 +429,6 @@ namespace Coffee.UIExtensions
//################################ //################################
MaterialCache _materialCache = null; MaterialCache _materialCache = null;
EffectPlayer _player{ get { return m_Player ?? (m_Player = new EffectPlayer()); } } EffectPlayer _player { get { return m_Player ?? (m_Player = new EffectPlayer()); } }
} }
} }

View File

@ -5,7 +5,6 @@ using UnityEngine.UI;
using UnityEngine.Serialization; using UnityEngine.Serialization;
#if UNITY_EDITOR #if UNITY_EDITOR
using System.IO;
using System.Linq; using System.Linq;
using UnityEditor; using UnityEditor;
#endif #endif
@ -55,22 +54,29 @@ namespace Coffee.UIExtensions
[Tooltip("Advanced blurring remove common artifacts in the blur effect for uGUI.")] [Tooltip("Advanced blurring remove common artifacts in the blur effect for uGUI.")]
[SerializeField] bool m_AdvancedBlur = false; [SerializeField] bool m_AdvancedBlur = false;
#pragma warning disable 0414 #pragma warning disable 0414
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField][Range(0, 1)] float m_ShadowBlur = 1; [SerializeField][Range(0, 1)] float m_ShadowBlur = 1;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] ShadowStyle m_ShadowStyle; [SerializeField] ShadowStyle m_ShadowStyle;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] Color m_ShadowColor = Color.black; [SerializeField] Color m_ShadowColor = Color.black;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] Vector2 m_EffectDistance = new Vector2(1f, -1f); [SerializeField] Vector2 m_EffectDistance = new Vector2(1f, -1f);
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] bool m_UseGraphicAlpha = true; [SerializeField] bool m_UseGraphicAlpha = true;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] Color m_EffectColor = Color.white; [SerializeField] Color m_EffectColor = Color.white;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] List<UIShadow.AdditionalShadow> m_AdditionalShadows = new List<UIShadow.AdditionalShadow>(); [SerializeField] List<UIShadow.AdditionalShadow> m_AdditionalShadows = new List<UIShadow.AdditionalShadow>();
#pragma warning restore 0414 #pragma warning restore 0414
public enum BlurEx public enum BlurEx
{ {
@ -295,9 +301,9 @@ namespace Coffee.UIExtensions
if (isTMPro) if (isTMPro)
{ {
#if UNITY_2017_1_OR_NEWER #if UNITY_2017_1_OR_NEWER
vt.uv2 = uvMask; vt.uv2 = uvMask;
#endif #endif
} }
else else
{ {
@ -333,7 +339,7 @@ namespace Coffee.UIExtensions
{ {
foreach (var m in materials) foreach (var m in materials)
{ {
ptex.RegisterMaterial (m); ptex.RegisterMaterial(m);
} }
ptex.SetData(this, 0, m_EffectFactor); // param.x : effect factor ptex.SetData(this, 0, m_EffectFactor); // param.x : effect factor
ptex.SetData(this, 1, m_ColorFactor); // param.y : color factor ptex.SetData(this, 1, m_ColorFactor); // param.y : color factor
@ -354,7 +360,7 @@ namespace Coffee.UIExtensions
return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName), m_EffectMode, m_ColorMode, m_BlurMode, m_AdvancedBlur ? BlurEx.Ex : BlurEx.None); return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName), m_EffectMode, m_ColorMode, m_BlurMode, m_AdvancedBlur ? BlurEx.Ex : BlurEx.None);
} }
#pragma warning disable 0612 #pragma warning disable 0612
protected override void UpgradeIfNeeded() protected override void UpgradeIfNeeded()
{ {
// Upgrade for v3.0.0 // Upgrade for v3.0.0
@ -438,7 +444,7 @@ namespace Coffee.UIExtensions
} }
} }
} }
#pragma warning restore 0612 #pragma warning restore 0612
#endif #endif
//################################ //################################

View File

@ -1,8 +1,8 @@
using System.Collections; using System.Collections;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.Rendering; using UnityEngine.Rendering;
using UnityEngine.Serialization;
using UnityEngine.UI; using UnityEngine.UI;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
@ -399,7 +399,7 @@ namespace Coffee.UIExtensions
} }
#endif #endif
// Execute command buffer. // Execute command buffer.
canvas.rootCanvas.GetComponent<CanvasScaler> ().StartCoroutine (_CoUpdateTextureOnNextFrame ()); canvas.rootCanvas.GetComponent<CanvasScaler>().StartCoroutine(_CoUpdateTextureOnNextFrame());
} }
/// <summary> /// <summary>
@ -523,7 +523,7 @@ namespace Coffee.UIExtensions
if (obj) if (obj)
{ {
obj.Release(); obj.Release();
RenderTexture.ReleaseTemporary (obj); RenderTexture.ReleaseTemporary(obj);
obj = null; obj = null;
} }
} }

View File

@ -1,6 +1,4 @@
using System; using UnityEngine;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
@ -28,13 +26,13 @@ namespace Coffee.UIExtensions
/// Gets or sets a value indicating whether this <see cref="Coffee.UIExtensions.UIFlip"/> should be flipped horizontally. /// Gets or sets a value indicating whether this <see cref="Coffee.UIExtensions.UIFlip"/> should be flipped horizontally.
/// </summary> /// </summary>
/// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value> /// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value>
public bool horizontal { get { return this.m_Horizontal; } set { this.m_Horizontal = value; SetVerticesDirty (); } } public bool horizontal { get { return this.m_Horizontal; } set { this.m_Horizontal = value; SetVerticesDirty(); } }
/// <summary> /// <summary>
/// Gets or sets a value indicating whether this <see cref="Coffee.UIExtensions.UIFlip"/> should be flipped vertically. /// Gets or sets a value indicating whether this <see cref="Coffee.UIExtensions.UIFlip"/> should be flipped vertically.
/// </summary> /// </summary>
/// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value> /// <value><c>true</c> if be flipped horizontally; otherwise, <c>false</c>.</value>
public bool vertical { get { return this.m_Veritical; } set { this.m_Veritical = value; SetVerticesDirty (); } } public bool vertical { get { return this.m_Veritical; } set { this.m_Veritical = value; SetVerticesDirty(); } }
/// <summary> /// <summary>
/// Call used to modify mesh. /// Call used to modify mesh.

View File

@ -374,7 +374,7 @@ namespace Coffee.UIExtensions
m12 = dx * sin + dy * cos + center; m12 = dx * sin + dy * cos + center;
} }
public static Vector2 operator*(Matrix2x3 m, Vector2 v) public static Vector2 operator *(Matrix2x3 m, Vector2 v)
{ {
return new Vector2( return new Vector2(
(m.m00 * v.x) + (m.m01 * v.y) + m.m02, (m.m00 * v.x) + (m.m01 * v.y) + m.m02,

View File

@ -1,5 +1,4 @@
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization;
using UnityEngine.UI; using UnityEngine.UI;
@ -24,21 +23,21 @@ namespace Coffee.UIExtensions
[Header("Target")] [Header("Target")]
[Tooltip("Target color to affect hsv shift.")] [Tooltip("Target color to affect hsv shift.")]
[SerializeField] [ColorUsage(false)] Color m_TargetColor = Color.red; [SerializeField][ColorUsage(false)] Color m_TargetColor = Color.red;
[Tooltip("Color range to affect hsv shift [0 ~ 1].")] [Tooltip("Color range to affect hsv shift [0 ~ 1].")]
[SerializeField] [Range(0, 1)] float m_Range = 0.1f; [SerializeField][Range(0, 1)] float m_Range = 0.1f;
[Header("Adjustment")] [Header("Adjustment")]
[Tooltip("Hue shift [-0.5 ~ 0.5].")] [Tooltip("Hue shift [-0.5 ~ 0.5].")]
[SerializeField] [Range(-0.5f, 0.5f)] float m_Hue; [SerializeField][Range(-0.5f, 0.5f)] float m_Hue;
[Tooltip("Saturation shift [-0.5 ~ 0.5].")] [Tooltip("Saturation shift [-0.5 ~ 0.5].")]
[SerializeField] [Range(-0.5f, 0.5f)] float m_Saturation; [SerializeField][Range(-0.5f, 0.5f)] float m_Saturation;
[Tooltip("Value shift [-0.5 ~ 0.5].")] [Tooltip("Value shift [-0.5 ~ 0.5].")]
[SerializeField] [Range(-0.5f, 0.5f)] float m_Value; [SerializeField][Range(-0.5f, 0.5f)] float m_Value;
//################################ //################################
@ -175,7 +174,7 @@ namespace Coffee.UIExtensions
foreach (var m in materials) foreach (var m in materials)
{ {
ptex.RegisterMaterial (m); ptex.RegisterMaterial(m);
} }
ptex.SetData(this, 0, h); // param1.x : target hue ptex.SetData(this, 0, h); // param1.x : target hue

View File

@ -5,8 +5,6 @@ using UnityEngine.Serialization;
using UnityEngine.UI; using UnityEngine.UI;
#if UNITY_EDITOR #if UNITY_EDITOR
using System.IO;
using System.Linq;
using UnityEditor; using UnityEditor;
#endif #endif
@ -69,17 +67,18 @@ namespace Coffee.UIExtensions
[Tooltip("Shadow effect style.")] [Tooltip("Shadow effect style.")]
[SerializeField] ShadowStyle m_Style = ShadowStyle.Shadow; [SerializeField] ShadowStyle m_Style = ShadowStyle.Shadow;
#pragma warning disable 0414 #pragma warning disable 0414
[HideInInspector][System.Obsolete] [HideInInspector]
[System.Obsolete]
[SerializeField] List<AdditionalShadow> m_AdditionalShadows = new List<AdditionalShadow>(); [SerializeField] List<AdditionalShadow> m_AdditionalShadows = new List<AdditionalShadow>();
#pragma warning restore 0414 #pragma warning restore 0414
[SerializeField] [SerializeField]
private Color m_EffectColor = new Color (0f, 0f, 0f, 0.5f); private Color m_EffectColor = new Color(0f, 0f, 0f, 0.5f);
[SerializeField] [SerializeField]
private Vector2 m_EffectDistance = new Vector2 (1f, -1f); private Vector2 m_EffectDistance = new Vector2(1f, -1f);
[SerializeField] [SerializeField]
private bool m_UseGraphicAlpha = true; private bool m_UseGraphicAlpha = true;
@ -93,7 +92,7 @@ namespace Coffee.UIExtensions
{ {
m_EffectColor = value; m_EffectColor = value;
if (graphic != null) if (graphic != null)
graphic.SetVerticesDirty (); graphic.SetVerticesDirty();
} }
} }
@ -118,7 +117,7 @@ namespace Coffee.UIExtensions
m_EffectDistance = value; m_EffectDistance = value;
if (graphic != null) if (graphic != null)
graphic.SetVerticesDirty (); graphic.SetVerticesDirty();
} }
} }
@ -129,7 +128,7 @@ namespace Coffee.UIExtensions
{ {
m_UseGraphicAlpha = value; m_UseGraphicAlpha = value;
if (graphic != null) if (graphic != null)
graphic.SetVerticesDirty (); graphic.SetVerticesDirty();
} }
} }
@ -184,7 +183,7 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// Gets the parameter texture. /// Gets the parameter texture.
/// </summary> /// </summary>
public ParameterTexture ptex{ get; private set; } public ParameterTexture ptex { get; private set; }
int _graphicVertexCount; int _graphicVertexCount;
static readonly List<UIShadow> tmpShadows = new List<UIShadow>(); static readonly List<UIShadow> tmpShadows = new List<UIShadow>();
@ -200,12 +199,12 @@ namespace Coffee.UIExtensions
ptex.Register(this); ptex.Register(this);
} }
#if TMP_PRESENT #if TMP_PRESENT
if (isTMPro) if (isTMPro)
{ {
textMeshPro.onCullStateChanged.AddListener (OnCullStateChanged); textMeshPro.onCullStateChanged.AddListener (OnCullStateChanged);
} }
#endif #endif
} }
protected override void OnDisable() protected override void OnDisable()
@ -220,15 +219,15 @@ namespace Coffee.UIExtensions
} }
#if UNITY_EDITOR #if UNITY_EDITOR
protected override void OnValidate () protected override void OnValidate()
{ {
effectDistance = m_EffectDistance; effectDistance = m_EffectDistance;
base.OnValidate (); base.OnValidate();
} }
#endif #endif
#if TMP_PRESENT #if TMP_PRESENT
protected void OnCullStateChanged (bool state) protected void OnCullStateChanged (bool state)
{ {
SetVerticesDirty (); SetVerticesDirty ();
@ -249,7 +248,7 @@ namespace Coffee.UIExtensions
} }
base.LateUpdate (); base.LateUpdate ();
} }
#endif #endif
/// <summary> /// <summary>
/// Modifies the mesh. /// Modifies the mesh.
@ -433,7 +432,7 @@ namespace Coffee.UIExtensions
} }
#pragma warning disable 0612 #pragma warning disable 0612
void UpgradeIfNeeded() void UpgradeIfNeeded()
{ {
if (0 < m_AdditionalShadows.Count) if (0 < m_AdditionalShadows.Count)
@ -455,7 +454,7 @@ namespace Coffee.UIExtensions
m_AdditionalShadows = null; m_AdditionalShadows = null;
} }
} }
#pragma warning restore 0612 #pragma warning restore 0612
#endif #endif
} }
} }

View File

@ -1,14 +1,9 @@
using System; using System;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
using UnityEngine.UI; using UnityEngine.UI;
using System.Collections;
#if UNITY_EDITOR #if UNITY_EDITOR
using System.IO;
using System.Linq;
using UnityEditor;
#endif #endif
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
@ -31,13 +26,13 @@ namespace Coffee.UIExtensions
//################################ //################################
[Tooltip("Location for shiny effect.")] [Tooltip("Location for shiny effect.")]
[FormerlySerializedAs("m_Location")] [FormerlySerializedAs("m_Location")]
[SerializeField] [Range(0, 1)] float m_EffectFactor = 0; [SerializeField][Range(0, 1)] float m_EffectFactor = 0;
[Tooltip("Width for shiny effect.")] [Tooltip("Width for shiny effect.")]
[SerializeField] [Range(0, 1)] float m_Width = 0.25f; [SerializeField][Range(0, 1)] float m_Width = 0.25f;
[Tooltip("Rotation for shiny effect.")] [Tooltip("Rotation for shiny effect.")]
[SerializeField] [Range(-180, 180)] float m_Rotation; [SerializeField][Range(-180, 180)] float m_Rotation;
[Tooltip("Softness for shiny effect.")] [Tooltip("Softness for shiny effect.")]
[SerializeField][Range(0.01f, 1)] float m_Softness = 1f; [SerializeField][Range(0.01f, 1)] float m_Softness = 1f;
@ -56,18 +51,23 @@ namespace Coffee.UIExtensions
[SerializeField] EffectPlayer m_Player; [SerializeField] EffectPlayer m_Player;
#pragma warning disable 0414 #pragma warning disable 0414
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] bool m_Play = false; [SerializeField] bool m_Play = false;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] bool m_Loop = false; [SerializeField] bool m_Loop = false;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField][Range(0.1f, 10)] float m_Duration = 1; [SerializeField][Range(0.1f, 10)] float m_Duration = 1;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField][Range(0, 10)] float m_LoopDelay = 1; [SerializeField][Range(0, 10)] float m_LoopDelay = 1;
[Obsolete][HideInInspector] [Obsolete]
[HideInInspector]
[SerializeField] AnimatorUpdateMode m_UpdateMode = AnimatorUpdateMode.Normal; [SerializeField] AnimatorUpdateMode m_UpdateMode = AnimatorUpdateMode.Normal;
#pragma warning restore 0414 #pragma warning restore 0414
//################################ //################################
@ -224,7 +224,7 @@ namespace Coffee.UIExtensions
if (!Mathf.Approximately(m_Rotation, value)) if (!Mathf.Approximately(m_Rotation, value))
{ {
m_Rotation = _lastRotation = value; m_Rotation = _lastRotation = value;
SetVerticesDirty (); SetVerticesDirty();
} }
} }
} }
@ -240,7 +240,7 @@ namespace Coffee.UIExtensions
if (m_EffectArea != value) if (m_EffectArea != value)
{ {
m_EffectArea = value; m_EffectArea = value;
SetVerticesDirty (); SetVerticesDirty();
} }
} }
} }
@ -248,7 +248,7 @@ namespace Coffee.UIExtensions
/// <summary> /// <summary>
/// Play shinning on enable. /// Play shinning on enable.
/// </summary> /// </summary>
[System.Obsolete ("Use Play/Stop method instead")] [System.Obsolete("Use Play/Stop method instead")]
public bool play { get { return _player.play; } set { _player.play = value; } } public bool play { get { return _player.play; } set { _player.play = value; } }
/// <summary> /// <summary>
@ -308,7 +308,7 @@ namespace Coffee.UIExtensions
return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName)); return MaterialResolver.GetOrGenerateMaterialVariant(Shader.Find(shaderName));
} }
#pragma warning disable 0612 #pragma warning disable 0612
protected override void UpgradeIfNeeded() protected override void UpgradeIfNeeded()
{ {
// Upgrade for v3.0.0 // Upgrade for v3.0.0
@ -321,7 +321,7 @@ namespace Coffee.UIExtensions
_player.updateMode = m_UpdateMode; _player.updateMode = m_UpdateMode;
} }
} }
#pragma warning restore 0612 #pragma warning restore 0612
#endif #endif
@ -337,7 +337,7 @@ namespace Coffee.UIExtensions
float normalizedIndex = ptex.GetNormalizedIndex(this); float normalizedIndex = ptex.GetNormalizedIndex(this);
// rect. // rect.
Rect rect = m_EffectArea.GetEffectArea (vh, rectTransform.rect); Rect rect = m_EffectArea.GetEffectArea(vh, rectTransform.rect);
// rotation. // rotation.
float rad = m_Rotation * Mathf.Deg2Rad; float rad = m_Rotation * Mathf.Deg2Rad;
@ -352,11 +352,11 @@ namespace Coffee.UIExtensions
for (int i = 0; i < vh.currentVertCount; i++) for (int i = 0; i < vh.currentVertCount; i++)
{ {
vh.PopulateUIVertex(ref vertex, i); vh.PopulateUIVertex(ref vertex, i);
m_EffectArea.GetNormalizedFactor (i, localMatrix, vertex.position, isText, out nomalizedPos); m_EffectArea.GetNormalizedFactor(i, localMatrix, vertex.position, isText, out nomalizedPos);
vertex.uv0 = new Vector2 ( vertex.uv0 = new Vector2(
Packer.ToFloat (vertex.uv0.x, vertex.uv0.y), Packer.ToFloat(vertex.uv0.x, vertex.uv0.y),
Packer.ToFloat (nomalizedPos.y, normalizedIndex) Packer.ToFloat(nomalizedPos.y, normalizedIndex)
); );
vh.SetUIVertex(vertex, i); vh.SetUIVertex(vertex, i);
@ -383,7 +383,7 @@ namespace Coffee.UIExtensions
{ {
foreach (var m in materials) foreach (var m in materials)
{ {
ptex.RegisterMaterial (m); ptex.RegisterMaterial(m);
} }
ptex.SetData(this, 0, m_EffectFactor); // param1.x : location ptex.SetData(this, 0, m_EffectFactor); // param1.x : location
ptex.SetData(this, 1, m_Width); // param1.y : width ptex.SetData(this, 1, m_Width); // param1.y : width
@ -403,6 +403,6 @@ namespace Coffee.UIExtensions
//################################ //################################
float _lastRotation; float _lastRotation;
EffectPlayer _player{ get { return m_Player ?? (m_Player = new EffectPlayer()); } } EffectPlayer _player { get { return m_Player ?? (m_Player = new EffectPlayer()); } }
} }
} }

View File

@ -1,6 +1,5 @@
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.Serialization;
namespace Coffee.UIExtensions namespace Coffee.UIExtensions
{ {
@ -47,13 +46,13 @@ namespace Coffee.UIExtensions
[SerializeField] bool m_KeepAspectRatio; [SerializeField] bool m_KeepAspectRatio;
[Tooltip("Dissolve edge width.")] [Tooltip("Dissolve edge width.")]
[SerializeField] [Range(0, 1)] float m_DissolveWidth = 0.5f; [SerializeField][Range(0, 1)] float m_DissolveWidth = 0.5f;
[Tooltip("Dissolve edge softness.")] [Tooltip("Dissolve edge softness.")]
[SerializeField] [Range(0, 1)] float m_DissolveSoftness = 0.5f; [SerializeField][Range(0, 1)] float m_DissolveSoftness = 0.5f;
[Tooltip("Dissolve edge color.")] [Tooltip("Dissolve edge color.")]
[SerializeField] [ColorUsage(false)] Color m_DissolveColor = new Color(0.0f, 0.25f, 1.0f); [SerializeField][ColorUsage(false)] Color m_DissolveColor = new Color(0.0f, 0.25f, 1.0f);
[Tooltip("Disable graphic's raycast target on hidden.")] [Tooltip("Disable graphic's raycast target on hidden.")]
[SerializeField] bool m_PassRayOnHidden; [SerializeField] bool m_PassRayOnHidden;
@ -263,12 +262,12 @@ namespace Coffee.UIExtensions
} }
bool isText = isTMPro || graphic is Text; bool isText = isTMPro || graphic is Text;
float normalizedIndex = ptex.GetNormalizedIndex (this); float normalizedIndex = ptex.GetNormalizedIndex(this);
// rect. // rect.
var tex = transitionTexture; var tex = transitionTexture;
var aspectRatio = m_KeepAspectRatio && tex ? ((float)tex.width) / tex.height : -1; var aspectRatio = m_KeepAspectRatio && tex ? ((float)tex.width) / tex.height : -1;
Rect rect = m_EffectArea.GetEffectArea (vh, rectTransform.rect, aspectRatio); Rect rect = m_EffectArea.GetEffectArea(vh, rectTransform.rect, aspectRatio);
// Set prameters to vertex. // Set prameters to vertex.
UIVertex vertex = default(UIVertex); UIVertex vertex = default(UIVertex);
@ -277,11 +276,11 @@ namespace Coffee.UIExtensions
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
vh.PopulateUIVertex(ref vertex, i); vh.PopulateUIVertex(ref vertex, i);
m_EffectArea.GetPositionFactor (i, rect, vertex.position, isText, isTMPro, out x, out y); m_EffectArea.GetPositionFactor(i, rect, vertex.position, isText, isTMPro, out x, out y);
vertex.uv0 = new Vector2 ( vertex.uv0 = new Vector2(
Packer.ToFloat (vertex.uv0.x, vertex.uv0.y), Packer.ToFloat(vertex.uv0.x, vertex.uv0.y),
Packer.ToFloat (x, y, normalizedIndex) Packer.ToFloat(x, y, normalizedIndex)
); );
vh.SetUIVertex(vertex, i); vh.SetUIVertex(vertex, i);
} }
@ -306,7 +305,7 @@ namespace Coffee.UIExtensions
/// </summary> /// </summary>
protected override void OnDisable() protected override void OnDisable()
{ {
base.OnDisable (); base.OnDisable();
MaterialCache.Unregister(_materialCache); MaterialCache.Unregister(_materialCache);
_materialCache = null; _materialCache = null;
_player.OnDisable(); _player.OnDisable();
@ -316,7 +315,7 @@ namespace Coffee.UIExtensions
{ {
foreach (var m in materials) foreach (var m in materials)
{ {
ptex.RegisterMaterial (m); ptex.RegisterMaterial(m);
} }
ptex.SetData(this, 0, m_EffectFactor); // param1.x : effect factor ptex.SetData(this, 0, m_EffectFactor); // param1.x : effect factor
if (m_EffectMode == EffectMode.Dissolve) if (m_EffectMode == EffectMode.Dissolve)
@ -351,6 +350,6 @@ namespace Coffee.UIExtensions
//################################ //################################
MaterialCache _materialCache = null; MaterialCache _materialCache = null;
EffectPlayer _player{ get { return m_Player ?? (m_Player = new EffectPlayer()); } } EffectPlayer _player { get { return m_Player ?? (m_Player = new EffectPlayer()); } }
} }
} }

View File

@ -2,7 +2,6 @@
// Created: 2018/07/13 // Created: 2018/07/13
#if true // MODULE_MARKER #if true // MODULE_MARKER
using System;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using UnityEngine; using UnityEngine;
@ -50,11 +49,12 @@ namespace DG.Tweening
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param> /// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
{ {
TweenerCore<float, float, FloatOptions> t = DOTween.To(()=> { TweenerCore<float, float, FloatOptions> t = DOTween.To(() =>
{
float currVal; float currVal;
target.GetFloat(floatName, out currVal); target.GetFloat(floatName, out currVal);
return currVal; return currVal;
}, x=> target.SetFloat(floatName, x), endValue, duration); }, x => target.SetFloat(floatName, x), endValue, duration);
t.SetTarget(target); t.SetTarget(target);
return t; return t;
} }

View File

@ -1,6 +1,4 @@
using UnityEngine; #if false || EPO_DOTWEEN // MODULE_MARKER
#if false || EPO_DOTWEEN // MODULE_MARKER
using EPOOutline; using EPOOutline;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;

View File

@ -2,7 +2,6 @@
// Created: 2018/07/13 // Created: 2018/07/13
#if true // MODULE_MARKER #if true // MODULE_MARKER
using System;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Core.Enums; using DG.Tweening.Core.Enums;
using DG.Tweening.Plugins; using DG.Tweening.Plugins;
@ -116,8 +115,10 @@ namespace DG.Tweening
.SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
).Join(yTween) ).Join(yTween)
.SetTarget(target).SetEase(DOTween.defaultEaseType); .SetTarget(target).SetEase(DOTween.defaultEaseType);
yTween.OnUpdate(() => { yTween.OnUpdate(() =>
if (!offsetYSet) { {
if (!offsetYSet)
{
offsetYSet = true; offsetYSet = true;
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
} }

View File

@ -2,7 +2,6 @@
// Created: 2018/07/13 // Created: 2018/07/13
#if true // MODULE_MARKER #if true // MODULE_MARKER
using System;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins; using DG.Tweening.Plugins;
using DG.Tweening.Plugins.Core.PathCore; using DG.Tweening.Plugins.Core.PathCore;
@ -87,8 +86,10 @@ namespace DG.Tweening
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
).Join(yTween) ).Join(yTween)
.SetTarget(target).SetEase(DOTween.defaultEaseType); .SetTarget(target).SetEase(DOTween.defaultEaseType);
yTween.OnUpdate(() => { yTween.OnUpdate(() =>
if (!offsetYSet) { {
if (!offsetYSet)
{
offsetYSet = true; offsetYSet = true;
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
} }

View File

@ -2,10 +2,9 @@
// Created: 2018/07/13 // Created: 2018/07/13
#if true // MODULE_MARKER #if true // MODULE_MARKER
using System;
using UnityEngine;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using UnityEngine;
#pragma warning disable 1591 #pragma warning disable 1591
namespace DG.Tweening namespace DG.Tweening
@ -45,9 +44,11 @@ namespace DG.Tweening
Sequence s = DOTween.Sequence(); Sequence s = DOTween.Sequence();
GradientColorKey[] colors = gradient.colorKeys; GradientColorKey[] colors = gradient.colorKeys;
int len = colors.Length; int len = colors.Length;
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i)
{
GradientColorKey c = colors[i]; GradientColorKey c = colors[i];
if (i == 0 && c.time <= 0) { if (i == 0 && c.time <= 0)
{
target.color = c.color; target.color = c.color;
continue; continue;
} }
@ -75,7 +76,8 @@ namespace DG.Tweening
{ {
endValue = endValue - target.color; endValue = endValue - target.color;
Color to = new Color(0, 0, 0, 0); Color to = new Color(0, 0, 0, 0);
return DOTween.To(() => to, x => { return DOTween.To(() => to, x =>
{
Color diff = x - to; Color diff = x - to;
to = x; to = x;
target.color += diff; target.color += diff;

View File

@ -3,14 +3,13 @@
#if true // MODULE_MARKER #if true // MODULE_MARKER
using System;
using System.Globalization;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Core.Enums; using DG.Tweening.Core.Enums;
using DG.Tweening.Plugins; using DG.Tweening.Plugins;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using System.Globalization;
using UnityEngine;
using UnityEngine.UI;
using Outline = UnityEngine.UI.Outline; using Outline = UnityEngine.UI.Outline;
using Text = UnityEngine.UI.Text; using Text = UnityEngine.UI.Text;
@ -102,9 +101,11 @@ namespace DG.Tweening
Sequence s = DOTween.Sequence(); Sequence s = DOTween.Sequence();
GradientColorKey[] colors = gradient.colorKeys; GradientColorKey[] colors = gradient.colorKeys;
int len = colors.Length; int len = colors.Length;
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i)
{
GradientColorKey c = colors[i]; GradientColorKey c = colors[i];
if (i == 0 && c.time <= 0) { if (i == 0 && c.time <= 0)
{
target.color = c.color; target.color = c.color;
continue; continue;
} }
@ -127,7 +128,8 @@ namespace DG.Tweening
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param> /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
public static TweenerCore<Vector2, Vector2, VectorOptions> DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) public static TweenerCore<Vector2, Vector2, VectorOptions> DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
{ {
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x =>
{
target.flexibleWidth = x.x; target.flexibleWidth = x.x;
target.flexibleHeight = x.y; target.flexibleHeight = x.y;
}, endValue, duration); }, endValue, duration);
@ -141,7 +143,8 @@ namespace DG.Tweening
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param> /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) public static TweenerCore<Vector2, Vector2, VectorOptions> DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
{ {
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x =>
{
target.minWidth = x.x; target.minWidth = x.x;
target.minHeight = x.y; target.minHeight = x.y;
}, endValue, duration); }, endValue, duration);
@ -155,7 +158,8 @@ namespace DG.Tweening
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param> /// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) public static TweenerCore<Vector2, Vector2, VectorOptions> DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
{ {
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x =>
{
target.preferredWidth = x.x; target.preferredWidth = x.x;
target.preferredHeight = x.y; target.preferredHeight = x.y;
}, endValue, duration); }, endValue, duration);
@ -404,13 +408,15 @@ namespace DG.Tweening
Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
.SetLoops(numJumps * 2, LoopType.Yoyo) .SetLoops(numJumps * 2, LoopType.Yoyo)
.OnStart(()=> startPosY = target.anchoredPosition.y); .OnStart(() => startPosY = target.anchoredPosition.y);
s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
).Join(yTween) ).Join(yTween)
.SetTarget(target).SetEase(DOTween.defaultEaseType); .SetTarget(target).SetEase(DOTween.defaultEaseType);
s.OnUpdate(() => { s.OnUpdate(() =>
if (!offsetYSet) { {
if (!offsetYSet)
{
offsetYSet = true; offsetYSet = true;
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
} }
@ -434,7 +440,8 @@ namespace DG.Tweening
public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false)
{ {
return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition),
x => { x =>
{
target.horizontalNormalizedPosition = x.x; target.horizontalNormalizedPosition = x.x;
target.verticalNormalizedPosition = x.y; target.verticalNormalizedPosition = x.y;
}, endValue, duration) }, endValue, duration)
@ -498,10 +505,12 @@ namespace DG.Tweening
/// <param name="culture">The <see cref="CultureInfo"/> to use (InvariantCulture if NULL)</param> /// <param name="culture">The <see cref="CultureInfo"/> to use (InvariantCulture if NULL)</param>
public static TweenerCore<int, int, NoOptions> DOCounter( public static TweenerCore<int, int, NoOptions> DOCounter(
this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
){ )
{
int v = fromValue; int v = fromValue;
CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture; CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
TweenerCore<int, int, NoOptions> t = DOTween.To(() => v, x => { TweenerCore<int, int, NoOptions> t = DOTween.To(() => v, x =>
{
v = x; v = x;
target.text = addThousandsSeparator target.text = addThousandsSeparator
? v.ToString("N0", cInfo) ? v.ToString("N0", cInfo)
@ -532,7 +541,8 @@ namespace DG.Tweening
/// Leave it to NULL (default) to use default ones</param> /// Leave it to NULL (default) to use default ones</param>
public static TweenerCore<string, string, StringOptions> DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) public static TweenerCore<string, string, StringOptions> DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
{ {
if (endValue == null) { if (endValue == null)
{
if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors"); if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors");
endValue = ""; endValue = "";
} }
@ -557,7 +567,8 @@ namespace DG.Tweening
{ {
endValue = endValue - target.color; endValue = endValue - target.color;
Color to = new Color(0, 0, 0, 0); Color to = new Color(0, 0, 0, 0);
return DOTween.To(() => to, x => { return DOTween.To(() => to, x =>
{
Color diff = x - to; Color diff = x - to;
to = x; to = x;
target.color += diff; target.color += diff;
@ -578,7 +589,8 @@ namespace DG.Tweening
{ {
endValue = endValue - target.color; endValue = endValue - target.color;
Color to = new Color(0, 0, 0, 0); Color to = new Color(0, 0, 0, 0);
return DOTween.To(() => to, x => { return DOTween.To(() => to, x =>
{
Color diff = x - to; Color diff = x - to;
to = x; to = x;
target.color += diff; target.color += diff;
@ -599,7 +611,8 @@ namespace DG.Tweening
{ {
endValue = endValue - target.color; endValue = endValue - target.color;
Color to = new Color(0, 0, 0, 0); Color to = new Color(0, 0, 0, 0);
return DOTween.To(() => to, x => { return DOTween.To(() => to, x =>
{
Color diff = x - to; Color diff = x - to;
to = x; to = x;
target.color += diff; target.color += diff;

View File

@ -1,10 +1,9 @@
// Author: Daniele Giardini - http://www.demigiant.com // Author: Daniele Giardini - http://www.demigiant.com
// Created: 2018/07/13 // Created: 2018/07/13
using System;
using UnityEngine;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using UnityEngine;
//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0) //#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
//using Task = System.Threading.Tasks.Task; //using Task = System.Threading.Tasks.Task;
//#endif //#endif
@ -29,9 +28,11 @@ namespace DG.Tweening
Sequence s = DOTween.Sequence(); Sequence s = DOTween.Sequence();
GradientColorKey[] colors = gradient.colorKeys; GradientColorKey[] colors = gradient.colorKeys;
int len = colors.Length; int len = colors.Length;
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i)
{
GradientColorKey c = colors[i]; GradientColorKey c = colors[i];
if (i == 0 && c.time <= 0) { if (i == 0 && c.time <= 0)
{
target.color = c.color; target.color = c.color;
continue; continue;
} }
@ -54,9 +55,11 @@ namespace DG.Tweening
Sequence s = DOTween.Sequence(); Sequence s = DOTween.Sequence();
GradientColorKey[] colors = gradient.colorKeys; GradientColorKey[] colors = gradient.colorKeys;
int len = colors.Length; int len = colors.Length;
for (int i = 0; i < len; ++i) { for (int i = 0; i < len; ++i)
{
GradientColorKey c = colors[i]; GradientColorKey c = colors[i];
if (i == 0 && c.time <= 0) { if (i == 0 && c.time <= 0)
{
target.SetColor(property, c.color); target.SetColor(property, c.color);
continue; continue;
} }
@ -80,7 +83,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -94,7 +98,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -108,7 +113,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -123,7 +129,8 @@ namespace DG.Tweening
/// <param name="elapsedLoops">Elapsed loops to wait for</param> /// <param name="elapsedLoops">Elapsed loops to wait for</param>
public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -139,7 +146,8 @@ namespace DG.Tweening
/// <param name="position">Position (loops included, delays excluded) to wait for</param> /// <param name="position">Position (loops included, delays excluded) to wait for</param>
public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -154,7 +162,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return null; return null;
} }
@ -175,7 +184,8 @@ namespace DG.Tweening
/// <param name="duration">The duration of the tween</param> /// <param name="duration">The duration of the tween</param>
public static TweenerCore<Vector2, Vector2, VectorOptions> DOOffset(this Material target, Vector2 endValue, int propertyID, float duration) public static TweenerCore<Vector2, Vector2, VectorOptions> DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
{ {
if (!target.HasProperty(propertyID)) { if (!target.HasProperty(propertyID))
{
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
return null; return null;
} }
@ -191,7 +201,8 @@ namespace DG.Tweening
/// <param name="duration">The duration of the tween</param> /// <param name="duration">The duration of the tween</param>
public static TweenerCore<Vector2, Vector2, VectorOptions> DOTiling(this Material target, Vector2 endValue, int propertyID, float duration) public static TweenerCore<Vector2, Vector2, VectorOptions> DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
{ {
if (!target.HasProperty(propertyID)) { if (!target.HasProperty(propertyID))
{
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID); if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
return null; return null;
} }
@ -215,7 +226,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t) public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -229,7 +241,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t) public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -243,7 +256,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t) public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -258,7 +272,8 @@ namespace DG.Tweening
/// <param name="elapsedLoops">Elapsed loops to wait for</param> /// <param name="elapsedLoops">Elapsed loops to wait for</param>
public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops) public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -274,7 +289,8 @@ namespace DG.Tweening
/// <param name="position">Position (loops included, delays excluded) to wait for</param> /// <param name="position">Position (loops included, delays excluded) to wait for</param>
public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position) public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -288,7 +304,8 @@ namespace DG.Tweening
/// </summary> /// </summary>
public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t) public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
{ {
if (!t.active) { if (!t.active)
{
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
return; return;
} }
@ -312,9 +329,13 @@ namespace DG.Tweening
{ {
public class WaitForCompletion : CustomYieldInstruction public class WaitForCompletion : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active && !t.IsComplete(); return t.active && !t.IsComplete();
}} }
}
readonly Tween t; readonly Tween t;
public WaitForCompletion(Tween tween) public WaitForCompletion(Tween tween)
{ {
@ -324,9 +345,13 @@ namespace DG.Tweening
public class WaitForRewind : CustomYieldInstruction public class WaitForRewind : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
}} }
}
readonly Tween t; readonly Tween t;
public WaitForRewind(Tween tween) public WaitForRewind(Tween tween)
{ {
@ -336,9 +361,13 @@ namespace DG.Tweening
public class WaitForKill : CustomYieldInstruction public class WaitForKill : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active; return t.active;
}} }
}
readonly Tween t; readonly Tween t;
public WaitForKill(Tween tween) public WaitForKill(Tween tween)
{ {
@ -348,9 +377,13 @@ namespace DG.Tweening
public class WaitForElapsedLoops : CustomYieldInstruction public class WaitForElapsedLoops : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active && t.CompletedLoops() < elapsedLoops; return t.active && t.CompletedLoops() < elapsedLoops;
}} }
}
readonly Tween t; readonly Tween t;
readonly int elapsedLoops; readonly int elapsedLoops;
public WaitForElapsedLoops(Tween tween, int elapsedLoops) public WaitForElapsedLoops(Tween tween, int elapsedLoops)
@ -362,9 +395,13 @@ namespace DG.Tweening
public class WaitForPosition : CustomYieldInstruction public class WaitForPosition : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active && t.position * (t.CompletedLoops() + 1) < position; return t.active && t.position * (t.CompletedLoops() + 1) < position;
}} }
}
readonly Tween t; readonly Tween t;
readonly float position; readonly float position;
public WaitForPosition(Tween tween, float position) public WaitForPosition(Tween tween, float position)
@ -376,9 +413,13 @@ namespace DG.Tweening
public class WaitForStart : CustomYieldInstruction public class WaitForStart : CustomYieldInstruction
{ {
public override bool keepWaiting { get { public override bool keepWaiting
{
get
{
return t.active && !t.playedOnce; return t.active && !t.playedOnce;
}} }
}
readonly Tween t; readonly Tween t;
public WaitForStart(Tween tween) public WaitForStart(Tween tween)
{ {

View File

@ -1,12 +1,12 @@
// Author: Daniele Giardini - http://www.demigiant.com // Author: Daniele Giardini - http://www.demigiant.com
// Created: 2018/07/13 // Created: 2018/07/13
using System;
using System.Reflection;
using UnityEngine;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Core.PathCore; using DG.Tweening.Plugins.Core.PathCore;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using System;
using System.Reflection;
using UnityEngine;
#pragma warning disable 1591 #pragma warning disable 1591
namespace DG.Tweening namespace DG.Tweening
@ -69,7 +69,7 @@ namespace DG.Tweening
// Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime) // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1 #if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
static void PlaymodeStateChanged() static void PlaymodeStateChanged()
#else #else
static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state) static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
#endif #endif
{ {
@ -128,13 +128,16 @@ namespace DG.Tweening
#endif #endif
public static TweenerCore<Vector3, Path, PathOptions> CreateDOTweenPathTween( public static TweenerCore<Vector3, Path, PathOptions> CreateDOTweenPathTween(
MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
){ )
{
TweenerCore<Vector3, Path, PathOptions> t = null; TweenerCore<Vector3, Path, PathOptions> t = null;
bool rBodyFoundAndTweened = false; bool rBodyFoundAndTweened = false;
#if true // PHYSICS_MARKER #if true // PHYSICS_MARKER
if (tweenRigidbody) { if (tweenRigidbody)
{
Rigidbody rBody = target.GetComponent<Rigidbody>(); Rigidbody rBody = target.GetComponent<Rigidbody>();
if (rBody != null) { if (rBody != null)
{
rBodyFoundAndTweened = true; rBodyFoundAndTweened = true;
t = isLocal t = isLocal
? rBody.DOLocalPath(path, duration, pathMode) ? rBody.DOLocalPath(path, duration, pathMode)
@ -143,9 +146,11 @@ namespace DG.Tweening
} }
#endif #endif
#if true // PHYSICS2D_MARKER #if true // PHYSICS2D_MARKER
if (!rBodyFoundAndTweened && tweenRigidbody) { if (!rBodyFoundAndTweened && tweenRigidbody)
{
Rigidbody2D rBody2D = target.GetComponent<Rigidbody2D>(); Rigidbody2D rBody2D = target.GetComponent<Rigidbody2D>();
if (rBody2D != null) { if (rBody2D != null)
{
rBodyFoundAndTweened = true; rBodyFoundAndTweened = true;
t = isLocal t = isLocal
? rBody2D.DOLocalPath(path, duration, pathMode) ? rBody2D.DOLocalPath(path, duration, pathMode)
@ -153,7 +158,8 @@ namespace DG.Tweening
} }
} }
#endif #endif
if (!rBodyFoundAndTweened) { if (!rBodyFoundAndTweened)
{
t = isLocal t = isLocal
? target.transform.DOLocalPath(path, duration, pathMode) ? target.transform.DOLocalPath(path, duration, pathMode)
: target.transform.DOPath(path, duration, pathMode); : target.transform.DOPath(path, duration, pathMode);

View File

@ -0,0 +1,104 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Disable
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 1574349066
script: {fileID: 0}
typeID: 225
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Alpha
path:
classID: 225
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25f1c28c99920124189b7173731c38b5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -528,6 +528,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5f9054446a969bf4eaf7998f3ba23334, type: 3} m_Script: {fileID: 11500000, guid: 5f9054446a969bf4eaf7998f3ba23334, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
animator: {fileID: 8744505332349586225}
--- !u!1 &2500436782395572584 --- !u!1 &2500436782395572584
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -649,7 +650,7 @@ RectTransform:
m_AnchorMin: {x: 1, y: 0} m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 300, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0.5} m_Pivot: {x: 0, y: 0.5}
--- !u!114 &4478785627166277611 --- !u!114 &4478785627166277611
MonoBehaviour: MonoBehaviour:

View File

@ -1,5 +1,57 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1101 &-6499513247890378152
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: active
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -2169522966389634846}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.875
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &-2169522966389634846
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Disable
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 8949275168816232509}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 25f1c28c99920124189b7173731c38b5, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000 --- !u!91 &9100000
AnimatorController: AnimatorController:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -8,7 +60,19 @@ AnimatorController:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: SelectBorder m_Name: SelectBorder
serializedVersion: 5 serializedVersion: 5
m_AnimatorParameters: [] m_AnimatorParameters:
- m_Name: active
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: reactive
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers: m_AnimatorLayers:
- serializedVersion: 5 - serializedVersion: 5
m_Name: Base Layer m_Name: Base Layer
@ -33,7 +97,10 @@ AnimatorStateMachine:
m_ChildStates: m_ChildStates:
- serializedVersion: 1 - serializedVersion: 1
m_State: {fileID: 5956899137579874003} m_State: {fileID: 5956899137579874003}
m_Position: {x: 340, y: 100, z: 0} m_Position: {x: 380, y: 70, z: 0}
- serializedVersion: 1
m_State: {fileID: -2169522966389634846}
m_Position: {x: 350, y: 200, z: 0}
m_ChildStateMachines: [] m_ChildStateMachines: []
m_AnyStateTransitions: [] m_AnyStateTransitions: []
m_EntryTransitions: [] m_EntryTransitions: []
@ -44,6 +111,31 @@ AnimatorStateMachine:
m_ExitPosition: {x: 800, y: 120, z: 0} m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 5956899137579874003} m_DefaultState: {fileID: 5956899137579874003}
--- !u!1101 &1182501105974621518
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: reactive
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5956899137579874003}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.875
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &5956899137579874003 --- !u!1102 &5956899137579874003
AnimatorState: AnimatorState:
serializedVersion: 6 serializedVersion: 6
@ -51,10 +143,12 @@ AnimatorState:
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: DEFAULT m_Name: Enable
m_Speed: 1.6 m_Speed: 1.6
m_CycleOffset: 0 m_CycleOffset: 0
m_Transitions: [] m_Transitions:
- {fileID: -6499513247890378152}
- {fileID: 1182501105974621518}
m_StateMachineBehaviours: [] m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0} m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0 m_IKOnFeet: 0
@ -70,3 +164,28 @@ AnimatorState:
m_MirrorParameter: m_MirrorParameter:
m_CycleOffsetParameter: m_CycleOffsetParameter:
m_TimeParameter: m_TimeParameter:
--- !u!1101 &8949275168816232509
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: active
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5956899137579874003}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1

View File

@ -1,7 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
{ {
public static class EventInvoker public static class EventInvoker

View File

@ -1,6 +1,4 @@
using AxibugEmuOnline.Client; using AxibugEmuOnline.Client;
using AxibugEmuOnline.Client.ClientCore;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.Rendering.PostProcessing; using UnityEngine.Rendering.PostProcessing;

View File

@ -1,7 +1,4 @@
using System.Collections.Generic; namespace AxibugEmuOnline.Client
using UnityEngine;
namespace AxibugEmuOnline.Client
{ {
public abstract class CommandChanger : IKeyMapperChanger public abstract class CommandChanger : IKeyMapperChanger
{ {

View File

@ -3,7 +3,6 @@ using AxibugEmuOnline.Client.Common;
using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.Event;
using AxibugEmuOnline.Client.Network; using AxibugEmuOnline.Client.Network;
using AxibugProtobuf; using AxibugProtobuf;
using System;
namespace AxibugEmuOnline.Client.Manager namespace AxibugEmuOnline.Client.Manager
{ {

View File

@ -1,5 +1,4 @@
using DG.Tweening; using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;

View File

@ -5,8 +5,6 @@ using AxibugEmuOnline.Client.Network;
using AxibugProtobuf; using AxibugProtobuf;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEngine.EventSystems;
using static AxibugEmuOnline.Client.ClientCore.RomDB;
namespace AxibugEmuOnline.Client.Manager namespace AxibugEmuOnline.Client.Manager
{ {

View File

@ -1,6 +1,4 @@
using System; using UnityEngine;
using System.Text;
using UnityEngine;
using VirtualNes.Core; using VirtualNes.Core;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client

View File

@ -1,11 +1,8 @@
using AxibugEmuOnline.Client.Common;
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Text;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using VirtualNes.Core; using VirtualNes.Core;
using static UnityEngine.UI.CanvasScaler;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
{ {

View File

@ -4,7 +4,6 @@ using HaoYueNet.ClientNetworkNet.Standard2;
using System; using System;
using System.Net.Sockets; using System.Net.Sockets;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
namespace AxibugEmuOnline.Client.Network namespace AxibugEmuOnline.Client.Network
{ {

View File

@ -1,8 +1,6 @@
using DG.Tweening; using DG.Tweening;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client

View File

@ -1,9 +1,5 @@
using AxibugEmuOnline.Client.ClientCore;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
{ {

View File

@ -1,6 +1,4 @@
using AxibugEmuOnline.Client.UI; using AxibugEmuOnline.Client.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client

View File

@ -38,7 +38,7 @@ namespace AxibugEmuOnline.Client
m_stepPerformer = new StepPerformer(this); m_stepPerformer = new StepPerformer(this);
//menus.Add(new InGameUI_FilterSetting(this)); menus.Add(new InGameUI_FilterSetting(this));
menus.Add(new InGameUI_Reset(this)); menus.Add(new InGameUI_Reset(this));
menus.Add(new InGameUI_SaveState(this)); menus.Add(new InGameUI_SaveState(this));
menus.Add(new InGameUI_LoadState(this)); menus.Add(new InGameUI_LoadState(this));

View File

@ -1,7 +1,6 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using UnityEngine;
using static AxibugEmuOnline.Client.FilterManager; using static AxibugEmuOnline.Client.FilterManager;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client

View File

@ -1,8 +1,4 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
{ {

View File

@ -1,8 +1,5 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using System.Diagnostics; using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
{ {

View File

@ -1,4 +1,3 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;

View File

@ -1,6 +1,4 @@
using System.Collections; using UnityEditor;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.UI; using UnityEditor.UI;
using UnityEngine; using UnityEngine;

View File

@ -1,4 +1,3 @@
using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;

View File

@ -1,7 +1,6 @@
using DG.Tweening; using DG.Tweening;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using UnityEngine; using UnityEngine;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client
@ -71,6 +70,7 @@ namespace AxibugEmuOnline.Client
protected override void Update() protected override void Update()
{ {
SelectBorder.Active = Enable;
UpdateMenuState(); UpdateMenuState();
base.Update(); base.Update();
@ -177,6 +177,7 @@ namespace AxibugEmuOnline.Client
var itemUIRect = optionUI_MenuItem.transform as RectTransform; var itemUIRect = optionUI_MenuItem.transform as RectTransform;
SelectBorder.Target = itemUIRect; SelectBorder.Target = itemUIRect;
SelectBorder.RefreshPosition();
if (!m_bPoped) if (!m_bPoped)
{ {

View File

@ -1,6 +1,4 @@
using DG.Tweening; using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
namespace AxibugEmuOnline.Client namespace AxibugEmuOnline.Client

View File

@ -2,7 +2,6 @@ using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event; using AxibugEmuOnline.Client.Event;
using AxibugEmuOnline.Client.UI; using AxibugEmuOnline.Client.UI;
using AxibugProtobuf; using AxibugProtobuf;
using System;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;

View File

@ -1,4 +1,4 @@
using DG.Tweening; using DG.Tweening;
using DG.Tweening.Core; using DG.Tweening.Core;
using DG.Tweening.Plugins.Options; using DG.Tweening.Plugins.Options;
using UnityEngine; using UnityEngine;
@ -7,6 +7,8 @@ namespace AxibugEmuOnline.Client
{ {
public class Selector : MonoBehaviour public class Selector : MonoBehaviour
{ {
[SerializeField]
private Animator animator;
private RectTransform m_rect => transform as RectTransform; private RectTransform m_rect => transform as RectTransform;
private RectTransform m_target; private RectTransform m_target;
@ -21,15 +23,13 @@ namespace AxibugEmuOnline.Client
m_target = value; m_target = value;
//重置选择游标的动画
gameObject.SetActive(false);
gameObject.SetActive(true);
var itemUIRect = m_target.transform as RectTransform; var itemUIRect = m_target.transform as RectTransform;
m_rect.pivot = itemUIRect.pivot; m_rect.pivot = itemUIRect.pivot;
m_rect.sizeDelta = itemUIRect.rect.size; m_rect.sizeDelta = itemUIRect.rect.size;
m_rect.SetAsLastSibling(); m_rect.SetAsLastSibling();
animator.SetTrigger("reactive");
if (m_trackTween != null) if (m_trackTween != null)
{ {
m_trackTween.Kill(); m_trackTween.Kill();
@ -40,15 +40,34 @@ namespace AxibugEmuOnline.Client
} }
} }
private void LateUpdate() private bool m_active;
public bool Active
{ {
if (m_trackTween != null) get => m_active;
set
{ {
m_trackTween.endValue = Target.position; if (m_active == value) return;
} m_active = value;
if (Target == null) return;
animator.SetBool("active", value);
}
}
public void RefreshPosition()
{
if (Target != null)
{
m_rect.position = Target.position; m_rect.position = Target.position;
} }
} }
private void LateUpdate()
{
if (m_trackTween != null && m_trackTween.endValue != Target.position)
{
m_trackTween.ChangeEndValue(Target.position, true);
}
if (Target == null) return;
}
}
} }

View File

@ -1,4 +1,3 @@
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;

View File

@ -1,7 +1,6 @@
using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.ClientCore;
using AxibugProtobuf; using AxibugProtobuf;
using System; using System;
using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
@ -42,7 +41,7 @@ namespace AxibugEmuOnline.Client
{ {
if (s_RomFileCahcesInRoomInfo.TryGetValue(roomInfo.GameRomID, out RomFile romFile)) if (s_RomFileCahcesInRoomInfo.TryGetValue(roomInfo.GameRomID, out RomFile romFile))
{ {
callback.Invoke(roomInfo,romFile); callback.Invoke(roomInfo, romFile);
return; return;
} }
switch (platform) switch (platform)
@ -54,7 +53,7 @@ namespace AxibugEmuOnline.Client
romFile.SetWebData(romWebData); romFile.SetWebData(romWebData);
s_RomFileCahcesInRoomInfo[roomInfo.GameRomID] = romFile; s_RomFileCahcesInRoomInfo[roomInfo.GameRomID] = romFile;
callback.Invoke(roomInfo,romFile); callback.Invoke(roomInfo, romFile);
})); }));
break; break;
} }