diff --git a/Assets/AutoMotion/Scripts/Auto.cs b/Assets/AutoMotion/Scripts/Auto.cs index 4166d7d..f3250e5 100644 --- a/Assets/AutoMotion/Scripts/Auto.cs +++ b/Assets/AutoMotion/Scripts/Auto.cs @@ -1,4 +1,5 @@ using UnityEngine; +using System; using System.Collections; public delegate bool Predicate(); @@ -6,177 +7,230 @@ public static class Auto { - #region Transform coroutines + #region Generic coroutines - public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration, Easer ease) + /// + /// Interpolates a value between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(float from, float to, float duration, Easer ease, Action action) { float elapsed = 0; - var start = transform.localPosition; - var range = target - start; + float range = to - from; + while (elapsed < duration) { elapsed = Mathf.MoveTowards(elapsed, duration, Time.deltaTime); - transform.localPosition = start + range * ease(elapsed / duration); + action(from + range * ease(elapsed / duration)); yield return 0; } - transform.localPosition = target; - } - public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration) - { - return MoveTo(transform, target, duration, Ease.Linear); - } - public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration, EaseType ease) - { - return MoveTo(transform, target, duration, Ease.FromType(ease)); - } - - public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration, Easer ease) - { - var start = transform.localPosition; - transform.localPosition = target; - return MoveTo(transform, start, duration, ease); - } - public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration) - { - return MoveFrom(transform, target, duration, Ease.Linear); - } - public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration, EaseType ease) - { - return MoveFrom(transform, target, duration, Ease.FromType(ease)); + + action(from + range * ease(1)); } - - public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration, Easer ease) + + /// + /// Interpolates a value between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(float from, float to, float duration, EaseType ease, Action action) => + Interpolate(from, to, duration, Ease.FromType(ease), action); + + /// + /// Interpolates a Vector3 between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(Vector3 from, Vector3 to, float duration, Easer ease, Action action) { float elapsed = 0; - var start = transform.localScale; - var range = target - start; + Vector3 range = to - from; + while (elapsed < duration) { elapsed = Mathf.MoveTowards(elapsed, duration, Time.deltaTime); - transform.localScale = start + range * ease(elapsed / duration); + action(from + range * ease(elapsed / duration)); yield return 0; } - transform.localScale = target; - } - public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration) - { - return ScaleTo(transform, target, duration, Ease.Linear); - } - public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration, EaseType ease) - { - return ScaleTo(transform, target, duration, Ease.FromType(ease)); - } - public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration, Easer ease) - { - var start = transform.localScale; - transform.localScale = target; - return ScaleTo(transform, start, duration, ease); - } - public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration) - { - return ScaleFrom(transform, target, duration, Ease.Linear); + action(from + range * ease(1)); } - public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration, EaseType ease) - { - return ScaleFrom(transform, target, duration, Ease.FromType(ease)); - } - - public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration, Easer ease) + + /// + /// Interpolates a Vector3 between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(Vector3 from, Vector3 to, float duration, EaseType ease, Action action) => + Interpolate(from, to, duration, Ease.FromType(ease), action); + + /// + /// Interpolates a Quaternion between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(Quaternion from, Quaternion to, float duration, Easer ease, Action action) { float elapsed = 0; - var start = transform.localRotation; + while (elapsed < duration) { elapsed = Mathf.MoveTowards(elapsed, duration, Time.deltaTime); - transform.localRotation = Quaternion.Lerp(start, target, ease(elapsed / duration)); + action(Quaternion.Lerp(from, to, ease(elapsed / duration))); yield return 0; } - transform.localRotation = target; - } - public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration) - { - return RotateTo(transform, target, duration, Ease.Linear); - } - public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration, EaseType ease) - { - return RotateTo(transform, target, duration, Ease.FromType(ease)); - } - - public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration, Easer ease) - { - var start = transform.localRotation; - transform.localRotation = target; - return RotateTo(transform, start, duration, ease); - } - public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration) - { - return RotateFrom(transform, target, duration, Ease.Linear); - } - public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration, EaseType ease) - { - return RotateFrom(transform, target, duration, Ease.FromType(ease)); + + action(Quaternion.Lerp(from, to, ease(1))); } - + + /// + /// Interpolates a Quaternion between from and to, using the ease function. + /// + /// The value to interpolate from. + /// The value to interpolate to. + /// The interpolation duration, in seconds. + /// The ease function. + /// The action to perform with the interpolated value. + /// The IEnumerator for the coroutine. + public static IEnumerator Interpolate(Quaternion from, Quaternion to, float duration, EaseType ease, Action action) => + Interpolate(from, to, duration, Ease.FromType(ease), action); + + #endregion + + #region Transform coroutines + + public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration, Easer ease) => + Interpolate(transform.localPosition, target, duration, ease, v => transform.localPosition = v); + + public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration) => + Interpolate(transform.localPosition, target, duration, Ease.Linear, v => transform.localPosition = v); + + public static IEnumerator MoveTo(this Transform transform, Vector3 target, float duration, EaseType ease) => + Interpolate(transform.localPosition, target, duration, ease, v => transform.localPosition = v); + + public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration, Easer ease) => + Interpolate(target, transform.localPosition, duration, ease, v => transform.localPosition = v); + + public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration) => + Interpolate(target, transform.localPosition, duration, Ease.Linear, v => transform.localPosition = v); + + public static IEnumerator MoveFrom(this Transform transform, Vector3 target, float duration, EaseType ease) => + Interpolate(target, transform.localPosition, duration, ease, v => transform.localPosition = v); + + public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration, Easer ease) => + Interpolate(transform.localScale, target, duration, ease, v => transform.localScale = v); + + public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration) => + Interpolate(transform.localScale, target, duration, Ease.Linear, v => transform.localScale = v); + + public static IEnumerator ScaleTo(this Transform transform, Vector3 target, float duration, EaseType ease) => + Interpolate(transform.localScale, target, duration, ease, v => transform.localScale = v); + + public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration, Easer ease) => + Interpolate(target, transform.localScale, duration, ease, v => transform.localScale = v); + + public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration) => + Interpolate(target, transform.localScale, duration, Ease.Linear, v => transform.localScale = v); + + public static IEnumerator ScaleFrom(this Transform transform, Vector3 target, float duration, EaseType ease) => + Interpolate(target, transform.localScale, duration, ease, v => transform.localScale = v); + + public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration, Easer ease) => + Interpolate(transform.localRotation, target, duration, ease, v => transform.localRotation = v); + + public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration) => + Interpolate(transform.localRotation, target, duration, Ease.Linear, v => transform.localRotation = v); + + public static IEnumerator RotateTo(this Transform transform, Quaternion target, float duration, EaseType ease) => + Interpolate(transform.localRotation, target, duration, ease, v => transform.localRotation = v); + + public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration, Easer ease) => + Interpolate(target, transform.localRotation, duration, ease, v => transform.localRotation = v); + + public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration) => + Interpolate(target, transform.localRotation, duration, Ease.Linear, v => transform.localRotation = v); + + public static IEnumerator RotateFrom(this Transform transform, Quaternion target, float duration, EaseType ease) => + Interpolate(target, transform.localRotation, duration, ease, v => transform.localRotation = v); + public static IEnumerator CurveTo(this Transform transform, Vector3 control, Vector3 target, float duration, Easer ease) { float elapsed = 0; var start = transform.localPosition; - Vector3 position; - float t; + while (elapsed < duration) { elapsed = Mathf.MoveTowards(elapsed, duration, Time.deltaTime); - t = ease(elapsed / duration); - position.x = start.x * (1 - t) * (1 - t) + control.x * 2 * (1 - t) * t + target.x * t * t; - position.y = start.y * (1 - t) * (1 - t) + control.y * 2 * (1 - t) * t + target.y * t * t; - position.z = start.z * (1 - t) * (1 - t) + control.z * 2 * (1 - t) * t + target.z * t * t; - transform.localPosition = position; + float t = ease(elapsed / duration); + transform.localPosition = start * (1 - t) * (1 - t) + control * 2 * (1 - t) * t + target * t * t; yield return 0; } + transform.localPosition = target; } - public static IEnumerator CurveTo(this Transform transform, Vector3 control, Vector3 target, float duration) - { - return CurveTo(transform, control, target, duration, Ease.Linear); - } - public static IEnumerator CurveTo(this Transform transform, Vector3 control, Vector3 target, float duration, EaseType ease) - { - return CurveTo(transform, control, target, duration, Ease.FromType(ease)); - } - + + public static IEnumerator CurveTo(this Transform transform, Vector3 control, Vector3 target, float duration) => + CurveTo(transform, control, target, duration, Ease.Linear); + + public static IEnumerator CurveTo(this Transform transform, Vector3 control, Vector3 target, float duration, EaseType ease) => + CurveTo(transform, control, target, duration, Ease.FromType(ease)); + public static IEnumerator CurveFrom(this Transform transform, Vector3 control, Vector3 start, float duration, Easer ease) { var target = transform.localPosition; transform.localPosition = start; return CurveTo(transform, control, target, duration, ease); } - public static IEnumerator CurveFrom(this Transform transform, Vector3 control, Vector3 start, float duration) - { - return CurveFrom(transform, control, start, duration, Ease.Linear); - } - public static IEnumerator CurveFrom(this Transform transform, Vector3 control, Vector3 start, float duration, EaseType ease) - { - return CurveFrom(transform, control, start, duration, Ease.FromType(ease)); - } - + + public static IEnumerator CurveFrom(this Transform transform, Vector3 control, Vector3 start, float duration) => + CurveFrom(transform, control, start, duration, Ease.Linear); + + public static IEnumerator CurveFrom(this Transform transform, Vector3 control, Vector3 start, float duration, EaseType ease) => + CurveFrom(transform, control, start, duration, Ease.FromType(ease)); + public static IEnumerator Shake(this Transform transform, Vector3 amount, float duration) { var start = transform.localPosition; var shake = Vector3.zero; + while (duration > 0) { duration -= Time.deltaTime; - shake.Set(Random.Range(-amount.x, amount.x), Random.Range(-amount.y, amount.y), Random.Range(-amount.z, amount.z)); + shake.Set( + UnityEngine.Random.Range(-amount.x, amount.x), + UnityEngine.Random.Range(-amount.y, amount.y), + UnityEngine.Random.Range(-amount.z, amount.z) + ); transform.localPosition = start + shake; yield return 0; } + transform.localPosition = start; } - public static IEnumerator Shake(this Transform transform, float amount, float duration) - { - return Shake(transform, new Vector3(amount, amount, amount), duration); - } + + public static IEnumerator Shake(this Transform transform, float amount, float duration) => + Shake(transform, Vector3.one * amount, duration); #endregion @@ -200,62 +254,52 @@ public static IEnumerator WaitUntil(Predicate predicate) #endregion #region Time-based motion - + public static float Loop(float duration, float from, float to, float offsetPercent) { var range = to - from; var total = (Time.time + duration * offsetPercent) * (Mathf.Abs(range) / duration); - if (range > 0) - return from + Time.time - (range * Mathf.FloorToInt((Time.time / range))); - else - return from - (Time.time - (Mathf.Abs(range) * Mathf.FloorToInt((total / Mathf.Abs(range))))); - } - public static float Loop(float duration, float from, float to) - { - return Loop(duration, from, to, 0); - } - public static Vector3 Loop(float duration, Vector3 from, Vector3 to, float offsetPercent) - { - return Vector3.Lerp(from, to, Loop(duration, 0, 1, offsetPercent)); - } - public static Vector3 Loop(float duration, Vector3 from, Vector3 to) - { - return Vector3.Lerp(from, to, Loop(duration, 0, 1)); - } - public static Quaternion Loop(float duration, Quaternion from, Quaternion to, float offsetPercent) - { - return Quaternion.Lerp(from, to, Loop(duration, 0, 1, offsetPercent)); - } - public static Quaternion Loop(float duration, Quaternion from, Quaternion to) - { - return Quaternion.Lerp(from, to, Loop(duration, 0, 1)); + + return (range > 0) ? + from + Time.time - (range * Mathf.FloorToInt((Time.time / range))) : + from - (Time.time - (Mathf.Abs(range) * Mathf.FloorToInt((total / Mathf.Abs(range))))); } - + + public static float Loop(float duration, float from, float to) => + Loop(duration, from, to, 0); + + public static Vector3 Loop(float duration, Vector3 from, Vector3 to, float offsetPercent) => + Vector3.Lerp(from, to, Loop(duration, 0, 1, offsetPercent)); + + public static Vector3 Loop(float duration, Vector3 from, Vector3 to) => + Vector3.Lerp(from, to, Loop(duration, 0, 1)); + + public static Quaternion Loop(float duration, Quaternion from, Quaternion to, float offsetPercent) => + Quaternion.Lerp(from, to, Loop(duration, 0, 1, offsetPercent)); + + public static Quaternion Loop(float duration, Quaternion from, Quaternion to) => + Quaternion.Lerp(from, to, Loop(duration, 0, 1)); + public static float Wave(float duration, float from, float to, float offsetPercent) { var range = (to - from) / 2; return from + range + Mathf.Sin(((Time.time + duration * offsetPercent) / duration) * (Mathf.PI * 2)) * range; } - public static float Wave(float duration, float from, float to) - { - return Wave(duration, from, to, 0); - } - public static Vector3 Wave(float duration, Vector3 from, Vector3 to, float offsetPercent) - { - return Vector3.Lerp(from, to, Wave(duration, 0, 1, offsetPercent)); - } - public static Vector3 Wave(float duration, Vector3 from, Vector3 to) - { - return Vector3.Lerp(from, to, Wave(duration, 0, 1)); - } - public static Quaternion Wave(float duration, Quaternion from, Quaternion to, float offsetPercent) - { - return Quaternion.Lerp(from, to, Wave(duration, 0, 1, offsetPercent)); - } - public static Quaternion Wave(float duration, Quaternion from, Quaternion to) - { - return Quaternion.Lerp(from, to, Wave(duration, 0, 1)); - } + + public static float Wave(float duration, float from, float to) => + Wave(duration, from, to, 0); + + public static Vector3 Wave(float duration, Vector3 from, Vector3 to, float offsetPercent) => + Vector3.Lerp(from, to, Wave(duration, 0, 1, offsetPercent)); + + public static Vector3 Wave(float duration, Vector3 from, Vector3 to) => + Vector3.Lerp(from, to, Wave(duration, 0, 1)); + + public static Quaternion Wave(float duration, Quaternion from, Quaternion to, float offsetPercent) => + Quaternion.Lerp(from, to, Wave(duration, 0, 1, offsetPercent)); + + public static Quaternion Wave(float duration, Quaternion from, Quaternion to) => + Quaternion.Lerp(from, to, Wave(duration, 0, 1)); #endregion } @@ -266,52 +310,52 @@ public enum EaseType { Linear, QuadIn, QuadOut, QuadInOut, CubeIn, CubeOut, Cube public static class Ease { - public static readonly Easer Linear = (t) => { return t; }; - public static readonly Easer QuadIn = (t) => { return t * t; }; - public static readonly Easer QuadOut = (t) => { return 1 - QuadIn(1 - t); }; - public static readonly Easer QuadInOut = (t) => { return (t <= 0.5f) ? QuadIn(t * 2) / 2 : QuadOut(t * 2 - 1) / 2 + 0.5f; }; - public static readonly Easer CubeIn = (t) => { return t * t * t; }; - public static readonly Easer CubeOut = (t) => { return 1 - CubeIn(1 - t); }; - public static readonly Easer CubeInOut = (t) => { return (t <= 0.5f) ? CubeIn(t * 2) / 2 : CubeOut(t * 2 - 1) / 2 + 0.5f; }; - public static readonly Easer BackIn = (t) => { return t * t * (2.70158f * t - 1.70158f); }; - public static readonly Easer BackOut = (t) => { return 1 - BackIn(1 - t); }; - public static readonly Easer BackInOut = (t) => { return (t <= 0.5f) ? BackIn(t * 2) / 2 : BackOut(t * 2 - 1) / 2 + 0.5f; }; - public static readonly Easer ExpoIn = (t) => { return (float)Mathf.Pow(2, 10 * (t - 1)); }; - public static readonly Easer ExpoOut = (t) => { return 1 - ExpoIn(t); }; - public static readonly Easer ExpoInOut = (t) => { return t < .5f ? ExpoIn(t * 2) / 2 : ExpoOut(t * 2) / 2; }; - public static readonly Easer SineIn = (t) => { return -Mathf.Cos(Mathf.PI / 2 * t) + 1; }; - public static readonly Easer SineOut = (t) => { return Mathf.Sin(Mathf.PI / 2 * t); }; - public static readonly Easer SineInOut = (t) => { return -Mathf.Cos(Mathf.PI * t) / 2f + .5f; }; - public static readonly Easer ElasticIn = (t) => { return 1 - ElasticOut(1 - t); }; - public static readonly Easer ElasticOut = (t) => { return Mathf.Pow(2, -10 * t) * Mathf.Sin((t - 0.075f) * (2 * Mathf.PI) / 0.3f) + 1; }; - public static readonly Easer ElasticInOut = (t) => { return (t <= 0.5f) ? ElasticIn(t * 2) / 2 : ElasticOut(t * 2 - 1) / 2 + 0.5f; }; + public static readonly Easer Linear = (t) => t; + public static readonly Easer QuadIn = (t) => t * t; + public static readonly Easer QuadOut = (t) => 1 - QuadIn(1 - t); + public static readonly Easer QuadInOut = (t) => (t <= 0.5f) ? QuadIn(t * 2) / 2 : QuadOut(t * 2 - 1) / 2 + 0.5f; + public static readonly Easer CubeIn = (t) => t * t * t; + public static readonly Easer CubeOut = (t) => 1 - CubeIn(1 - t); + public static readonly Easer CubeInOut = (t) => (t <= 0.5f) ? CubeIn(t * 2) / 2 : CubeOut(t * 2 - 1) / 2 + 0.5f; + public static readonly Easer BackIn = (t) => t * t * (2.70158f * t - 1.70158f); + public static readonly Easer BackOut = (t) => 1 - BackIn(1 - t); + public static readonly Easer BackInOut = (t) => (t <= 0.5f) ? BackIn(t * 2) / 2 : BackOut(t * 2 - 1) / 2 + 0.5f; + public static readonly Easer ExpoIn = (t) => (float)Mathf.Pow(2, 10 * (t - 1)); + public static readonly Easer ExpoOut = (t) => 1 - ExpoIn(t); + public static readonly Easer ExpoInOut = (t) => t < .5f ? ExpoIn(t * 2) / 2 : ExpoOut(t * 2) / 2; + public static readonly Easer SineIn = (t) => -Mathf.Cos(Mathf.PI / 2 * t) + 1; + public static readonly Easer SineOut = (t) => Mathf.Sin(Mathf.PI / 2 * t); + public static readonly Easer SineInOut = (t) => -Mathf.Cos(Mathf.PI * t) / 2f + .5f; + public static readonly Easer ElasticIn = (t) => 1 - ElasticOut(1 - t); + public static readonly Easer ElasticOut = (t) => Mathf.Pow(2, -10 * t) * Mathf.Sin((t - 0.075f) * (2 * Mathf.PI) / 0.3f) + 1; + public static readonly Easer ElasticInOut = (t) => (t <= 0.5f) ? ElasticIn(t * 2) / 2 : ElasticOut(t * 2 - 1) / 2 + 0.5f; public static Easer FromType(EaseType type) { switch (type) { - case EaseType.Linear: return Linear; - case EaseType.QuadIn: return QuadIn; - case EaseType.QuadOut: return QuadOut; - case EaseType.QuadInOut: return QuadInOut; - case EaseType.CubeIn: return CubeIn; - case EaseType.CubeOut: return CubeOut; - case EaseType.CubeInOut: return CubeInOut; - case EaseType.BackIn: return BackIn; - case EaseType.BackOut: return BackOut; - case EaseType.BackInOut: return BackInOut; - case EaseType.ExpoIn: return ExpoIn; - case EaseType.ExpoOut: return ExpoOut; - case EaseType.ExpoInOut: return ExpoInOut; - case EaseType.SineIn: return SineIn; - case EaseType.SineOut: return SineOut; - case EaseType.SineInOut: return SineInOut; - case EaseType.ElasticIn: return ElasticIn; - case EaseType.ElasticOut: return ElasticOut; - case EaseType.ElasticInOut: return ElasticInOut; + case EaseType.Linear: return Linear; + case EaseType.QuadIn: return QuadIn; + case EaseType.QuadOut: return QuadOut; + case EaseType.QuadInOut: return QuadInOut; + case EaseType.CubeIn: return CubeIn; + case EaseType.CubeOut: return CubeOut; + case EaseType.CubeInOut: return CubeInOut; + case EaseType.BackIn: return BackIn; + case EaseType.BackOut: return BackOut; + case EaseType.BackInOut: return BackInOut; + case EaseType.ExpoIn: return ExpoIn; + case EaseType.ExpoOut: return ExpoOut; + case EaseType.ExpoInOut: return ExpoInOut; + case EaseType.SineIn: return SineIn; + case EaseType.SineOut: return SineOut; + case EaseType.SineInOut: return SineInOut; + case EaseType.ElasticIn: return ElasticIn; + case EaseType.ElasticOut: return ElasticOut; + case EaseType.ElasticInOut: return ElasticInOut; } return Linear; } } -#endregion \ No newline at end of file +#endregion diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 4c8d526..2813590 100644 Binary files a/ProjectSettings/GraphicsSettings.asset and b/ProjectSettings/GraphicsSettings.asset differ diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index dc9cabc..d7b45ba 100644 Binary files a/ProjectSettings/ProjectSettings.asset and b/ProjectSettings/ProjectSettings.asset differ diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..e6cd1f9 --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 2017.3.0f3