diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll b/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll
index df4f9e097..4c0bb1061 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll and b/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll.meta b/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll.meta
index e8655b60e..482dbb833 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/DOTween.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: a811bde74b26b53498b4f6d872b09b6d
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
+ Any:
enabled: 1
settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll
index cd66d539b..1599b4066 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll and b/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
index 8ae528a91..53590f3b8 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: 45d5034162d6cf04dbe46da84fc7d074
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
- enabled: 1
+ Any:
+ enabled: 0
settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
index 55682176a..50aa010fc 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: b766d08851589514b97afb23c6f30a70
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
index a1a1cb9fe..08b070065 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs
@@ -135,7 +135,7 @@ namespace DG.Tweening
/// If you plan to publish there you should use a regular transform.DOPath.
/// The waypoints to go through
/// The duration of the tween
- /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path)
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
/// The path mode: 3D, side-scroller 2D, top-down 2D
/// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
@@ -160,7 +160,7 @@ namespace DG.Tweening
/// If you plan to publish there you should use a regular transform.DOLocalPath.
/// The waypoint to go through
/// The duration of the tween
- /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path)
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
/// The path mode: 3D, side-scroller 2D, top-down 2D
/// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
index 42a05668a..0ce0d755f 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: dae9aa560b4242648a3affa2bfabc365
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
index f40a7d005..d01f72891 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs
@@ -4,6 +4,8 @@
#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
using System;
using DG.Tweening.Core;
+using DG.Tweening.Plugins;
+using DG.Tweening.Plugins.Core.PathCore;
using DG.Tweening.Plugins.Options;
using UnityEngine;
@@ -97,6 +99,90 @@ namespace DG.Tweening
return s;
}
+ /// Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOPath.
+ /// The waypoints to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ /// Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm.
+ /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
+ /// NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.
+ /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
+ /// If you plan to publish there you should use a regular transform.DOLocalPath.
+ /// The waypoint to go through
+ /// The duration of the tween
+ /// The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)
+ /// The path mode: 3D, side-scroller 2D, top-down 2D
+ /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
+ /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints
+ /// The color of the path (shown when gizmos are active in the Play panel and the tween is running)
+ public static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
+ PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
+ )
+ {
+ if (resolution < 1) resolution = 1;
+ int len = path.Length;
+ Vector3[] path3D = new Vector3[len];
+ for (int i = 0; i < len; ++i) path3D[i] = path[i];
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration)
+ .SetTarget(target).SetUpdate(UpdateType.Fixed);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+ // Used by path editor when creating the actual tween, so it can pass a pre-compiled path
+ internal static TweenerCore DOPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ return t;
+ }
+ internal static TweenerCore DOLocalPath(
+ this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
+ )
+ {
+ Transform trans = target.transform;
+ TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
+ .SetTarget(target);
+
+ t.plugOptions.isRigidbody2D = true;
+ t.plugOptions.mode = pathMode;
+ t.plugOptions.useLocalPosition = true;
+ return t;
+ }
+
#endregion
#endregion
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
index 323d0ddfa..ca9ed299f 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 230fe34542e175245ba74b4659dae700
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
index 9450ca524..549fff39f 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs
@@ -56,6 +56,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
index e6ade0cbf..a0c67c420 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 188918ab119d93148aa0de59ccf5286b
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
index 072c02c20..dc24ebf02 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs
@@ -2,12 +2,17 @@
// Created: 2018/07/13
#if true && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER
+
using System;
+using System.Globalization;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening.Core;
using DG.Tweening.Core.Enums;
+using DG.Tweening.Plugins;
using DG.Tweening.Plugins.Options;
+using Outline = UnityEngine.UI.Outline;
+using Text = UnityEngine.UI.Text;
#pragma warning disable 1591
namespace DG.Tweening
@@ -108,6 +113,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
@@ -480,6 +486,29 @@ namespace DG.Tweening
return t;
}
+ ///
+ /// Tweens a Text's text from one integer to another, with options for thousands separators
+ ///
+ /// The value to start from
+ /// The end value to reach
+ /// The duration of the tween
+ /// If TRUE (default) also adds thousands separators
+ /// The to use (InvariantCulture if NULL)
+ public static TweenerCore DOCounter(
+ this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
+ ){
+ int v = fromValue;
+ CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
+ TweenerCore t = DOTween.To(() => v, x => {
+ v = x;
+ target.text = addThousandsSeparator
+ ? v.ToString("N0", cInfo)
+ : v.ToString();
+ }, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
/// Tweens a Text's alpha color to the given value.
/// Also stores the Text as the tween's target so it can be used for filtered operations
/// The end value to reachThe duration of the tween
@@ -501,6 +530,10 @@ namespace DG.Tweening
/// Leave it to NULL (default) to use default ones
public static TweenerCore DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = 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");
+ endValue = "";
+ }
TweenerCore t = DOTween.To(() => target.text, x => target.text = x, endValue, duration);
t.SetOptions(richTextEnabled, scrambleMode, scrambleChars)
.SetTarget(target);
@@ -576,6 +609,29 @@ namespace DG.Tweening
#endregion
+ #region Shapes
+
+ /// Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center.
+ /// Also stores the RectTransform as the tween's target so it can be used for filtered operations.
+ /// IMPORTANT: SetFrom(value) requires a instead of a float, where the X property represents the "from degrees value"
+ /// Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates)
+ /// The end value degrees to reach (to rotate counter-clockwise pass a negative value)
+ /// The duration of the tween
+ /// If TRUE the coordinates will be considered as relative to the target's current anchoredPosition
+ /// If TRUE the tween will smoothly snap all values to integers
+ public static TweenerCore DOShapeCircle(
+ this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false
+ )
+ {
+ TweenerCore t = DOTween.To(
+ CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration
+ );
+ t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target);
+ return t;
+ }
+
+ #endregion
+
#endregion
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
index b7f95cb38..60d55efff 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: a060394c03331a64392db53a10e7f2d1
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
index 176ecae64..fa1ac05b0 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs
@@ -5,6 +5,9 @@ using System;
using UnityEngine;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
+//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+//using Task = System.Threading.Tasks.Task;
+//#endif
#pragma warning disable 1591
namespace DG.Tweening
@@ -40,6 +43,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
/// Tweens a Material's named color property using the given gradient
@@ -64,6 +68,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
@@ -135,7 +140,8 @@ namespace DG.Tweening
}
///
- /// Returns a that waits until the tween is killed or has reached the given position (loops included, delays excluded).
+ /// Returns a that waits until the tween is killed
+ /// or has reached the given time position (loops included, delays excluded).
/// It can be used inside a coroutine as a yield.
/// Example usage:yield return myTween.WaitForPosition(2.5f);
///
@@ -208,6 +214,104 @@ namespace DG.Tweening
#endregion
+ #region .NET 4.6 or Newer
+
+#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
+
+ #region Async Instructions
+
+ ///
+ /// Returns an async that waits until the tween is killed or complete.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.WaitForCompletion();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or rewinded.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForRewind();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or has gone through the given amount of loops.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForElapsedLoops();
+ ///
+ /// Elapsed loops to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed or started
+ /// (meaning when the tween is set in a playing state the first time, after any eventual delay).
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForPosition();
+ ///
+ /// Position (loops included, delays excluded) to wait for
+ public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield();
+ }
+
+ ///
+ /// Returns an async that waits until the tween is killed.
+ /// It can be used inside an async operation.
+ /// Example usage:await myTween.AsyncWaitForKill();
+ ///
+ public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
+ {
+ if (!t.active) {
+ if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
+ return;
+ }
+ while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield();
+ }
+
+ #endregion
+#endif
+
+ #endregion
+
#endregion
#endif
}
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
index 6256c54bb..290189f51 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 63c02322328255542995bd02b47b0457
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
index 8a1fb5f00..12a365d4f 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs
@@ -129,23 +129,35 @@ namespace DG.Tweening
public static TweenerCore CreateDOTweenPathTween(
MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
){
- TweenerCore t;
+ TweenerCore t = null;
+ bool rBodyFoundAndTweened = false;
#if true // PHYSICS_MARKER
- Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null;
- if (tweenRigidbody && rBody != null) {
- t = isLocal
- ? rBody.DOLocalPath(path, duration, pathMode)
- : rBody.DOPath(path, duration, pathMode);
- } else {
+ if (tweenRigidbody) {
+ Rigidbody rBody = target.GetComponent();
+ if (rBody != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody.DOLocalPath(path, duration, pathMode)
+ : rBody.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+#if true // PHYSICS2D_MARKER
+ if (!rBodyFoundAndTweened && tweenRigidbody) {
+ Rigidbody2D rBody2D = target.GetComponent();
+ if (rBody2D != null) {
+ rBodyFoundAndTweened = true;
+ t = isLocal
+ ? rBody2D.DOLocalPath(path, duration, pathMode)
+ : rBody2D.DOPath(path, duration, pathMode);
+ }
+ }
+#endif
+ if (!rBodyFoundAndTweened) {
t = isLocal
? target.transform.DOLocalPath(path, duration, pathMode)
: target.transform.DOPath(path, duration, pathMode);
}
-#else
- t = isLocal
- ? target.transform.DOLocalPath(path, duration, pathMode)
- : target.transform.DOPath(path, duration, pathMode);
-#endif
return t;
}
diff --git a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
index 9164e1ece..ab62186cf 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 7bcaf917d9cf5b84090421a5a2abe42e
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs
index e98328417..8bf2ff1b2 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs
@@ -66,7 +66,7 @@ namespace DG.Tweening
public bool targetIsSelf = true; // If FALSE allows to set the target manually
public GameObject targetGO = null; // Used in case targetIsSelf is FALSE
- // If TRUE always uses the GO containing this DOTweenAnimation (and not the one containing the target) as DOTween's SetTarget target
+ // If FALSE always uses the GO containing this DOTweenAnimation (and not the one containing the target) as DOTween's SetTarget target
public bool tweenTargetIsTargetGO = true;
public float delay;
@@ -80,6 +80,7 @@ namespace DG.Tweening
public bool isFrom;
public bool isIndependentUpdate = false;
public bool autoKill = true;
+ public bool autoGenerate = true; // If TRUE automatically creates the tween at startup
public bool isActive = true;
public bool isValid;
@@ -98,36 +99,36 @@ namespace DG.Tweening
public Rect endValueRect = new Rect(0, 0, 0, 0);
public Transform endValueTransform;
- public bool optionalBool0;
+ public bool optionalBool0, optionalBool1;
public float optionalFloat0;
public int optionalInt0;
public RotateMode optionalRotationMode = RotateMode.Fast;
public ScrambleMode optionalScrambleMode = ScrambleMode.None;
public string optionalString;
- bool _tweenCreated; // TRUE after the tweens have been created
+ bool _tweenAutoGenerationCalled; // TRUE after the tweens have been autoGenerated
int _playCount = -1; // Used when calling DOPlayNext
#region Unity Methods
void Awake()
{
- if (!isActive || !isValid) return;
+ if (!isActive || !autoGenerate) return;
if (animationType != AnimationType.Move || !useTargetAsV3) {
// Don't create tweens if we're using a RectTransform as a Move target,
// because that will work only inside Start
- CreateTween();
- _tweenCreated = true;
+ CreateTween(false, autoPlay);
+ _tweenAutoGenerationCalled = true;
}
}
void Start()
{
- if (_tweenCreated || !isActive || !isValid) return;
+ if (_tweenAutoGenerationCalled || !isActive || !autoGenerate) return;
- CreateTween();
- _tweenCreated = true;
+ CreateTween(false, autoPlay);
+ _tweenAutoGenerationCalled = true;
}
void Reset()
@@ -137,13 +138,60 @@ namespace DG.Tweening
void OnDestroy()
{
- if (tween != null && tween.IsActive()) tween.Kill();
+ if (tween != null && tween.active) tween.Kill();
tween = null;
}
- // Used also by DOTweenAnimationInspector when applying runtime changes and restarting
- public void CreateTween()
+ ///
+ /// Creates/recreates the tween without playing it, but first rewinding and killing the existing one if present.
+ ///
+ public void RewindThenRecreateTween()
{
+ if (tween != null && tween.active) tween.Rewind();
+ CreateTween(true, false);
+ }
+ ///
+ /// Creates/recreates the tween and plays it, first rewinding and killing the existing one if present.
+ ///
+ public void RewindThenRecreateTweenAndPlay()
+ {
+ if (tween != null && tween.active) tween.Rewind();
+ CreateTween(true, true);
+ }
+ ///
+ /// Creates/recreates the tween from its target's current value without playing it, but first killing the existing one if present.
+ ///
+ public void RecreateTween()
+ { CreateTween(true, false); }
+ ///
+ /// Creates/recreates the tween from its target's current value and plays it, first killing the existing one if present.
+ ///
+ public void RecreateTweenAndPlay()
+ { CreateTween(true, true); }
+ // Used also by DOTweenAnimationInspector when applying runtime changes and restarting
+ ///
+ /// Creates the tween manually (called automatically if AutoGenerate is set in the Inspector)
+ /// from its target's current value.
+ ///
+ /// If TRUE and an existing tween was already created (and not killed), kills it and recreates it with the current
+ /// parameters. Otherwise, if a tween already exists, does nothing.
+ /// If TRUE also plays the tween, otherwise only creates it
+ public void CreateTween(bool regenerateIfExists = false, bool andPlay = true)
+ {
+ if (!isValid) {
+ if (regenerateIfExists) { // Called manually: warn users
+ Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation isn't valid and its tween won't be created", this.gameObject.name), this.gameObject);
+ }
+ return;
+ }
+ if (tween != null) {
+ if (tween.active) {
+ if (regenerateIfExists) tween.Kill();
+ else return;
+ }
+ tween = null;
+ }
+
// if (target == null) {
// Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target is NULL, because the animation was created with a DOTween Pro version older than 0.9.255. To fix this, exit Play mode then simply select this object, and it will update automatically", this.gameObject.name), this.gameObject);
// return;
@@ -401,20 +449,20 @@ namespace DG.Tweening
case AnimationType.ShakePosition:
switch (targetType) {
case TargetType.Transform:
- tween = ((Transform)target).DOShakePosition(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0);
+ tween = ((Transform)target).DOShakePosition(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0, optionalBool1);
break;
#if true // UI_MARKER
case TargetType.RectTransform:
- tween = ((RectTransform)target).DOShakeAnchorPos(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0);
+ tween = ((RectTransform)target).DOShakeAnchorPos(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0, optionalBool1);
break;
#endif
}
break;
case AnimationType.ShakeScale:
- tween = tweenGO.transform.DOShakeScale(duration, endValueV3, optionalInt0, optionalFloat0);
+ tween = tweenGO.transform.DOShakeScale(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool1);
break;
case AnimationType.ShakeRotation:
- tween = tweenGO.transform.DOShakeRotation(duration, endValueV3, optionalInt0, optionalFloat0);
+ tween = tweenGO.transform.DOShakeRotation(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool1);
break;
case AnimationType.CameraAspect:
tween = ((Camera)target).DOAspect(endValueFloat, duration);
@@ -438,12 +486,14 @@ namespace DG.Tweening
if (tween == null) return;
+ // Created
+
if (isFrom) {
((Tweener)tween).From(isRelative);
} else {
tween.SetRelative(isRelative);
}
- GameObject setTarget = targetIsSelf || !tweenTargetIsTargetGO ? this.gameObject : targetGO;
+ GameObject setTarget = GetTweenTarget();
tween.SetTarget(setTarget).SetDelay(delay).SetLoops(loops, loopType).SetAutoKill(autoKill)
.OnKill(()=> tween = null);
if (isSpeedBased) tween.SetSpeedBased();
@@ -471,7 +521,7 @@ namespace DG.Tweening
if (onRewind != null) tween.OnRewind(onRewind.Invoke);
} else onRewind = null;
- if (autoPlay) tween.Play();
+ if (andPlay) tween.Play();
else tween.Pause();
if (hasOnTweenCreated && onTweenCreated != null) onTweenCreated.Invoke();
@@ -481,33 +531,94 @@ namespace DG.Tweening
#region Public Methods
- // These methods are here so they can be called directly via Unity's UGUI event system
+ #region Special
+ ///
+ /// Returns the tweens (if generated and not killed) created by all DOTweenAnimations on this gameObject,
+ /// in the same order as they appear in the Inspector (top to bottom).
+ /// Note that a tween is generated inside the Awake call (except RectTransform tweens which are generated inside Start),
+ /// so this method won't return them before that
+ ///
+ public List GetTweens()
+ {
+ List result = new List();
+ DOTweenAnimation[] anims = this.GetComponents();
+ foreach (DOTweenAnimation anim in anims) {
+ if (anim.tween != null && anim.tween.active) result.Add(anim.tween);
+ }
+ return result;
+ }
+
+ ///
+ /// Sets the animation target (which must be of the same type of the one set in the Inspector).
+ /// This is useful if you want to change it BEFORE this
+ /// creates a tween, while after that it won't have any effect.
+ /// Consider that a creates its tween inside its Awake (except for special tweens),
+ /// so you will need to sure your code runs before this object's Awake (via ScriptExecutionOrder or enabling/disabling methods)
+ ///
+ ///
+ /// New target for the animation (must be of the same type of the previous one)
+ /// If TRUE also uses tweenTarget's gameObject when settings the target-ID of the tween
+ /// (which is used with DOPlay/DORestart/etc to apply the same operation on all tweens that have the same target-id).
+ /// You should usually leave this to TRUE if you change the target.
+ ///
+ public void SetAnimationTarget(Component tweenTarget, bool useTweenTargetGameObjectForGroupOperations = true)
+ {
+ TargetType newTargetType = TypeToDOTargetType(target.GetType());
+ if (newTargetType != targetType) {
+ Debug.LogError("DOTweenAnimation ► SetAnimationTarget: the new target is of a different type from the one set in the Inspector");
+ return;
+ }
+ target = tweenTarget;
+ targetGO = target.gameObject;
+ tweenTargetIsTargetGO = useTweenTargetGameObjectForGroupOperations;
+ }
+
+ #endregion
+
+ ///
+ /// Plays all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOPlay()
{
- DOTween.Play(this.gameObject);
+ DOTween.Play(GetTweenTarget());
}
+ ///
+ /// Plays backwards all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOPlayBackwards()
{
- DOTween.PlayBackwards(this.gameObject);
+ DOTween.PlayBackwards(GetTweenTarget());
}
+ ///
+ /// Plays foward all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOPlayForward()
{
- DOTween.PlayForward(this.gameObject);
+ DOTween.PlayForward(GetTweenTarget());
}
+ ///
+ /// Pauses all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOPause()
{
- DOTween.Pause(this.gameObject);
+ DOTween.Pause(GetTweenTarget());
}
+ ///
+ /// Pauses/unpauses (depending on the current state) all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOTogglePause()
{
- DOTween.TogglePause(this.gameObject);
+ DOTween.TogglePause(GetTweenTarget());
}
+ ///
+ /// Rewinds all tweens created by this animation in the correct order
+ ///
public override void DORewind()
{
_playCount = -1;
@@ -517,16 +628,16 @@ namespace DG.Tweening
Tween t = anims[i].tween;
if (t != null && t.IsInitialized()) anims[i].tween.Rewind();
}
- // DOTween.Rewind(this.gameObject);
+ // DOTween.Rewind(GetTweenTarget());
}
///
- /// Restarts the tween
+ /// Restarts all tweens whose target-id is the same as the one set by this animation
///
public override void DORestart()
{ DORestart(false); }
///
- /// Restarts the tween
+ /// Restarts all tweens whose target-id is the same as the one set by this animation
///
/// If TRUE, re-evaluates the tween's start and end values from its current position.
/// Set it to TRUE when spawning the same DOTweenAnimation in different positions (like when using a pooling system)
@@ -537,85 +648,128 @@ namespace DG.Tweening
if (Debugger.logPriority > 1) Debugger.LogNullTween(tween); return;
}
if (fromHere && isRelative) ReEvaluateRelativeTween();
- DOTween.Restart(this.gameObject);
+ DOTween.Restart(GetTweenTarget());
}
+ ///
+ /// Completes all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOComplete()
{
- DOTween.Complete(this.gameObject);
+ DOTween.Complete(GetTweenTarget());
}
+ ///
+ /// Kills all tweens whose target-id is the same as the one set by this animation
+ ///
public override void DOKill()
{
- DOTween.Kill(this.gameObject);
+ DOTween.Kill(GetTweenTarget());
tween = null;
}
#region Specifics
+ ///
+ /// Plays all tweens with the given ID and whose target-id is the same as the one set by this animation
+ ///
public void DOPlayById(string id)
{
- DOTween.Play(this.gameObject, id);
+ DOTween.Play(GetTweenTarget(), id);
}
+ ///
+ /// Plays all tweens with the given ID (regardless of their target gameObject)
+ ///
public void DOPlayAllById(string id)
{
DOTween.Play(id);
}
+ ///
+ /// Pauses all tweens that with the given ID (regardless of their target gameObject)
+ ///
public void DOPauseAllById(string id)
{
DOTween.Pause(id);
}
+ ///
+ /// Plays backwards all tweens with the given ID and whose target-id is the same as the one set by this animation
+ ///
public void DOPlayBackwardsById(string id)
{
- DOTween.PlayBackwards(this.gameObject, id);
+ DOTween.PlayBackwards(GetTweenTarget(), id);
}
+ ///
+ /// Plays backwards all tweens with the given ID (regardless of their target gameObject)
+ ///
public void DOPlayBackwardsAllById(string id)
{
DOTween.PlayBackwards(id);
}
+ ///
+ /// Plays forward all tweens with the given ID and whose target-id is the same as the one set by this animation
+ ///
public void DOPlayForwardById(string id)
{
- DOTween.PlayForward(this.gameObject, id);
+ DOTween.PlayForward(GetTweenTarget(), id);
}
+ ///
+ /// Plays forward all tweens with the given ID (regardless of their target gameObject)
+ ///
public void DOPlayForwardAllById(string id)
{
DOTween.PlayForward(id);
}
+ ///
+ /// Plays the next animation on this animation's gameObject (if any)
+ ///
public void DOPlayNext()
{
DOTweenAnimation[] anims = this.GetComponents();
while (_playCount < anims.Length - 1) {
_playCount++;
DOTweenAnimation anim = anims[_playCount];
- if (anim != null && anim.tween != null && !anim.tween.IsPlaying() && !anim.tween.IsComplete()) {
+ if (anim != null && anim.tween != null && anim.tween.active && !anim.tween.IsPlaying() && !anim.tween.IsComplete()) {
anim.tween.Play();
break;
}
}
}
+ ///
+ /// Rewinds all tweens with the given ID and whose target-id is the same as the one set by this animation,
+ /// then plays the next animation on this animation's gameObject (if any)
+ ///
public void DORewindAndPlayNext()
{
_playCount = -1;
- DOTween.Rewind(this.gameObject);
+ DOTween.Rewind(GetTweenTarget());
DOPlayNext();
}
+ ///
+ /// Rewinds all tweens with the given ID (regardless of their target gameObject)
+ ///
public void DORewindAllById(string id)
{
_playCount = -1;
DOTween.Rewind(id);
}
+ ///
+ /// Restarts all tweens with the given ID and whose target-id is the same as the one set by this animation
+ ///
public void DORestartById(string id)
{
_playCount = -1;
- DOTween.Restart(this.gameObject, id);
+ DOTween.Restart(GetTweenTarget(), id);
}
+ ///
+ /// Restarts all tweens with the given ID (regardless of their target gameObject)
+ ///
public void DORestartAllById(string id)
{
_playCount = -1;
@@ -623,16 +777,18 @@ namespace DG.Tweening
}
///
- /// Returns the tweens created by this DOTweenAnimation, in the same order as they appear in the Inspector (top to bottom)
+ /// Kills all tweens with the given ID and whose target-id is the same as the one set by this animation
///
- public List GetTweens()
+ public void DOKillById(string id)
{
-// return DOTween.TweensByTarget(this.gameObject);
-
- List result = new List();
- DOTweenAnimation[] anims = this.GetComponents();
- foreach (DOTweenAnimation anim in anims) result.Add(anim.tween);
- return result;
+ DOTween.Kill(GetTweenTarget(), id);
+ }
+ ///
+ /// Kills all tweens with the given ID (regardless of their target gameObject)
+ ///
+ public void DOKillAllById(string id)
+ {
+ DOTween.Kill(id);
}
#endregion
@@ -653,7 +809,7 @@ namespace DG.Tweening
//#endif
#if true // UI_MARKER
// if (str == "RectTransform") str = "Transform";
- if (str == "RawImage") str = "Image"; // RawImages are managed like Images for DOTweenAnimation (color and fade use Graphic target anyway)
+ if (str == "RawImage" || str == "Graphic") str = "Image"; // RawImages/Graphics are managed like Images for DOTweenAnimation (color and fade use Graphic target anyway)
#endif
return (TargetType)Enum.Parse(typeof(TargetType), str);
}
@@ -666,7 +822,8 @@ namespace DG.Tweening
{
if (Application.isPlaying) return null;
- CreateTween();
+ // CHANGE: first param switched to TRUE otherwise changing an animation and replaying in editor would still play old one
+ CreateTween(true, autoPlay);
return tween;
}
@@ -676,12 +833,23 @@ namespace DG.Tweening
#region Private
- // Returns the gameObject whose target component should be animated
+ ///
+ /// Returns the gameObject whose target component should be animated
+ ///
+ ///
GameObject GetTweenGO()
{
return targetIsSelf ? this.gameObject : targetGO;
}
+ ///
+ /// Returns the GameObject which should be used/retrieved for SetTarget
+ ///
+ GameObject GetTweenTarget()
+ {
+ return targetIsSelf || !tweenTargetIsTargetGO ? this.gameObject : targetGO;
+ }
+
// Re-evaluate relative position of path
void ReEvaluateRelativeTween()
{
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta
index 5d92ac7ef..a10ceea26 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 4d0390bd8b8ffd640b34fe25065ff1df
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll
index deeda1d16..e3f932440 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll and b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta
index 6bcf81700..9ecbfd3cb 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: aa0b1eebb5db27a419fa4564bbe5c9c5
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
+ Any:
enabled: 1
settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta
index 99f8a2e31..bc6e86311 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 1c3190a1a1c53f449926f6d5542b4ce5
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs
index d6855562a..935bbee82 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs
@@ -1,17 +1,30 @@
-// Author: Daniele Giardini - http://www.demigiant.com
+// Author: Daniele Giardini - http://www.demigiant.com
// Created: 2015/03/27 19:02
//
// License Copyright (c) Daniele Giardini.
// This work is subject to the terms at http://dotween.demigiant.com/license.php
+
#if false // MODULE_MARKER
+using System;
+using System.Globalization;
+using System.Collections.Generic;
using DG.Tweening.Core;
using DG.Tweening.Plugins.Options;
using UnityEngine;
using TMPro;
+using Object = UnityEngine.Object;
namespace DG.Tweening
{
+ public enum TMPSkewSpanMode
+ {
+ /// Applies the skew as-is (like normal skew works): the longer the text-span the higher the last character will be
+ Default,
+ /// Applies the skew scaled by the size of the text-span: the max skew/displacement will be the given skew factor
+ AsMaxSkewFactor
+ }
+
///
/// Methods that extend TMP_Text objects and allow to directly create and control tweens from their instances.
///
@@ -98,6 +111,29 @@ namespace DG.Tweening
return t;
}
+ ///
+ /// Tweens a TextMeshPro's text from one integer to another, with options for thousands separators
+ ///
+ /// The value to start from
+ /// The end value to reach
+ /// The duration of the tween
+ /// If TRUE (default) also adds thousands separators
+ /// The to use (InvariantCulture if NULL)
+ public static TweenerCore DOCounter(
+ this TMP_Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
+ ){
+ int v = fromValue;
+ CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
+ TweenerCore t = DOTween.To(() => v, x => {
+ v = x;
+ target.text = addThousandsSeparator
+ ? v.ToString("N0", cInfo)
+ : v.ToString();
+ }, endValue, duration);
+ t.SetTarget(target);
+ return t;
+ }
+
/// Tweens a TextMeshPro's fontSize to the given value.
/// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations
/// The end value to reachThe duration of the tween
@@ -137,5 +173,865 @@ namespace DG.Tweening
#endregion
}
+
+ #region DOTweenTMPAnimator
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // ███ CLASS ███████████████████████████████████████████████████████████████████████████████████████████████████████████
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ ///
+ /// Wrapper for objects that enables per-character tweening
+ /// (you don't need this if instead you want to animate the whole text object).
+ /// It also contains various handy methods to simply deform text without animating it ;)
+ /// EXAMPLE:
+ /// DOTweenTMPAnimator animator = new DOTweenTMPAnimator(myTextMeshProTextField);
+ /// Tween tween = animator.DOCharScale(characterIndex, scaleValue, duration);
+ ///
+ ///
+ public class DOTweenTMPAnimator : IDisposable
+ {
+ static readonly Dictionary _targetToAnimator = new Dictionary();
+
+ /// that this animator is linked to
+ public TMP_Text target { get; private set; }
+ public TMP_TextInfo textInfo { get; private set; }
+ readonly List _charTransforms = new List();
+ TMP_MeshInfo[] _cachedMeshInfos;
+ bool _ignoreTextChangedEvent;
+
+ ///
+ /// Creates a new instance of the , which is necessary to animate by single characters.
+ /// If a already exists for the same object it will be disposed
+ /// (but not its tweens, those you will have to kill manually).
+ /// If you want to animate the whole text object you don't need this, and you can use direct DO shortcuts instead.
+ /// IMPORTANT: the target must have been enabled/activated at least once before you can use it with this
+ ///
+ /// The that will be linked to this animator
+ public DOTweenTMPAnimator(TMP_Text target)
+ {
+ if (target == null) {
+ Debugger.LogError("DOTweenTMPAnimator target can't be null");
+ return;
+ }
+ if (!target.gameObject.activeInHierarchy) {
+ Debugger.LogError("You can't create a DOTweenTMPAnimator if its target is disabled");
+ return;
+ }
+ // Verify that there's no other animators for the same target, and in case dispose them
+ if (_targetToAnimator.ContainsKey(target)) {
+ if (Debugger.logPriority >= 2) {
+ Debugger.Log(string.Format(
+ "A DOTweenTMPAnimator for \"{0}\" already exists: disposing it because you can't have more than one DOTweenTMPAnimator" +
+ " for the same TextMesh Pro object. If you have tweens running on the disposed DOTweenTMPAnimator you should kill them manually",
+ target
+ ));
+ }
+ _targetToAnimator[target].Dispose();
+ _targetToAnimator.Remove(target);
+ }
+ //
+ this.target = target;
+ _targetToAnimator.Add(target, this);
+ Refresh();
+ // Listeners
+ TMPro_EventManager.TEXT_CHANGED_EVENT.Add(OnTextChanged);
+ }
+
+ ///
+ /// If a instance exists for the given target disposes it
+ ///
+ public static void DisposeInstanceFor(TMP_Text target)
+ {
+ if (!_targetToAnimator.ContainsKey(target)) return;
+ _targetToAnimator[target].Dispose();
+ _targetToAnimator.Remove(target);
+ }
+
+ ///
+ /// Clears and disposes of this object
+ ///
+ public void Dispose()
+ {
+ target = null;
+ _charTransforms.Clear();
+ textInfo = null;
+ _cachedMeshInfos = null;
+ TMPro_EventManager.TEXT_CHANGED_EVENT.Remove(OnTextChanged);
+ }
+
+ ///
+ /// Refreshes the animator text data and resets all transformation data. Call this after you change the target
+ ///
+ public void Refresh()
+ {
+ _ignoreTextChangedEvent = true;
+ target.ForceMeshUpdate(true);
+ textInfo = target.textInfo;
+ _cachedMeshInfos = textInfo.CopyMeshInfoVertexData();
+ int totChars = textInfo.characterCount;
+ int totCurrent = _charTransforms.Count;
+ if (totCurrent > totChars) {
+ _charTransforms.RemoveRange(totChars, totCurrent - totChars);
+ totCurrent = totChars;
+ }
+ for (int i = 0; i < totCurrent; ++i) {
+ CharTransform c = _charTransforms[i];
+ c.ResetTransformationData();
+ c.Refresh(textInfo, _cachedMeshInfos);
+ _charTransforms[i] = c;
+ }
+ for (int i = totCurrent; i < totChars; ++i) _charTransforms.Add(new CharTransform(i, textInfo, _cachedMeshInfos));
+ _ignoreTextChangedEvent = false;
+ }
+
+ ///
+ /// Resets all deformations
+ ///
+ public void Reset()
+ {
+ int totCurrent = _charTransforms.Count;
+ for (int i = 0; i < totCurrent; ++i) _charTransforms[i].ResetAll(target, textInfo.meshInfo, _cachedMeshInfos);
+ }
+
+ void OnTextChanged(Object obj)
+ {
+ if (_ignoreTextChangedEvent || target == null || obj != target) return;
+ Refresh();
+ }
+
+ bool ValidateChar(int charIndex, bool isTween = true)
+ {
+ if (textInfo.characterCount <= charIndex) {
+ Debugger.LogError(string.Format("CharIndex {0} doesn't exist", charIndex));
+ return false;
+ }
+ if (!textInfo.characterInfo[charIndex].isVisible) {
+ if (Debugger.logPriority > 1) {
+ if (isTween) {
+ Debugger.Log(string.Format(
+ "CharIndex {0} isn't visible, ignoring it and returning an empty tween (TextMesh Pro will behave weirdly if invisible chars are included in the animation)",
+ charIndex
+ ));
+ } else {
+ Debugger.Log(string.Format("CharIndex {0} isn't visible, ignoring it", charIndex));
+ }
+ }
+ return false;
+ }
+ return true;
+ }
+
+ bool ValidateSpan(int fromCharIndex, int toCharIndex, out int firstVisibleCharIndex, out int lastVisibleCharIndex)
+ {
+ firstVisibleCharIndex = -1; // First visible/existing charIndex from given index
+ lastVisibleCharIndex = -1; // Last visible/existing charIndex backwards from given index
+ int charCount = textInfo.characterCount;
+ if (fromCharIndex >= charCount) return false;
+ if (toCharIndex >= charCount) toCharIndex = charCount - 1;
+ for (int i = fromCharIndex; i < toCharIndex + 1; ++i) {
+ if (!_charTransforms[i].isVisible) continue;
+ firstVisibleCharIndex = i;
+ break;
+ }
+ if (firstVisibleCharIndex == -1) return false;
+ for (int i = toCharIndex; i > firstVisibleCharIndex - 1; --i) {
+ if (!_charTransforms[i].isVisible) continue;
+ lastVisibleCharIndex = i;
+ break;
+ }
+ if (lastVisibleCharIndex == -1) return false;
+ return true;
+ }
+
+ #region Word Setters
+
+ ///
+ /// Skews a span of characters uniformly (like normal skew works in graphic applications)
+ ///
+ /// First char index of the span to skew
+ /// Last char index of the span to skew
+ /// Skew factor
+ /// If TRUE skews the top side of the span, otherwise the bottom one
+ public void SkewSpanX(int fromCharIndex, int toCharIndex, float skewFactor, bool skewTop = true)
+ {
+ int firstVisibleCharIndex, lastVisibleCharIndex;
+ if (!ValidateSpan(fromCharIndex, toCharIndex, out firstVisibleCharIndex, out lastVisibleCharIndex)) return;
+ for (int i = firstVisibleCharIndex; i < lastVisibleCharIndex + 1; ++i) {
+ if (!_charTransforms[i].isVisible) continue;
+ CharVertices v = _charTransforms[i].GetVertices();
+ float skew = SkewCharX(i, skewFactor, skewTop);
+ }
+ }
+
+ ///
+ /// Skews a span of characters uniformly (like normal skew works in graphic applications)
+ ///
+ /// First char index of the span to skew
+ /// Last char index of the span to skew
+ /// Skew factor
+ /// Skew mode
+ /// If TRUE skews the right side of the span, otherwise the left one
+ public void SkewSpanY(
+ int fromCharIndex, int toCharIndex, float skewFactor,
+ TMPSkewSpanMode mode = TMPSkewSpanMode.Default, bool skewRight = true
+ ){
+ int firstVisibleCharIndex, lastVisibleCharIndex;
+ if (!ValidateSpan(fromCharIndex, toCharIndex, out firstVisibleCharIndex, out lastVisibleCharIndex)) return;
+ if (mode == TMPSkewSpanMode.AsMaxSkewFactor) {
+ CharVertices firstVisibleCharVertices = _charTransforms[firstVisibleCharIndex].GetVertices();
+ CharVertices lastVisibleCharVertices = _charTransforms[lastVisibleCharIndex].GetVertices();
+ float spanW = Mathf.Abs(lastVisibleCharVertices.bottomRight.x - firstVisibleCharVertices.bottomLeft.x);
+ float spanH = Mathf.Abs(lastVisibleCharVertices.topRight.y - lastVisibleCharVertices.bottomRight.y);
+ float ratio = spanH / spanW;
+ skewFactor *= ratio;
+ }
+ float offsetY = 0;
+ CharVertices prevCharVertices = new CharVertices();
+ float prevCharSkew = 0;
+ if (skewRight) {
+ for (int i = firstVisibleCharIndex; i < lastVisibleCharIndex + 1; ++i) {
+ if (!_charTransforms[i].isVisible) continue;
+ CharVertices v = _charTransforms[i].GetVertices();
+ float skew = SkewCharY(i, skewFactor, skewRight);
+ if (i > firstVisibleCharIndex) {
+ float prevCharW = Mathf.Abs(prevCharVertices.bottomLeft.x - prevCharVertices.bottomRight.x);
+ float charsDist = Mathf.Abs(v.bottomLeft.x - prevCharVertices.bottomRight.x);
+ offsetY += prevCharSkew + (prevCharSkew * charsDist) / prevCharW;
+ SetCharOffset(i, new Vector3(0, _charTransforms[i].offset.y + offsetY, 0));
+ }
+ prevCharVertices = v;
+ prevCharSkew = skew;
+ }
+ } else {
+ for (int i = lastVisibleCharIndex; i > firstVisibleCharIndex - 1; --i) {
+ if (!_charTransforms[i].isVisible) continue;
+ CharVertices v = _charTransforms[i].GetVertices();
+ float skew = SkewCharY(i, skewFactor, skewRight);
+ if (i < lastVisibleCharIndex) {
+ float prevCharW = Mathf.Abs(prevCharVertices.bottomLeft.x - prevCharVertices.bottomRight.x);
+ float charsDist = Mathf.Abs(v.bottomRight.x - prevCharVertices.bottomLeft.x);
+ offsetY += prevCharSkew + (prevCharSkew * charsDist) / prevCharW;
+ SetCharOffset(i, new Vector3(0, _charTransforms[i].offset.y + offsetY, 0));
+ }
+ prevCharVertices = v;
+ prevCharSkew = skew;
+ }
+ }
+ }
+
+ #endregion
+
+ #region Char Getters
+
+ ///
+ /// Returns the current color of the given character, if it exists and is visible.
+ ///
+ /// Character index
+ public Color GetCharColor(int charIndex)
+ {
+ if (!ValidateChar(charIndex)) return Color.white;
+ return _charTransforms[charIndex].GetColor(textInfo.meshInfo);
+ }
+
+ ///
+ /// Returns the current offset of the given character, if it exists and is visible.
+ ///
+ /// Character index
+ public Vector3 GetCharOffset(int charIndex)
+ {
+ if (!ValidateChar(charIndex)) return Vector3.zero;
+ return _charTransforms[charIndex].offset;
+ }
+
+ ///
+ /// Returns the current rotation of the given character, if it exists and is visible.
+ ///
+ /// Character index
+ public Vector3 GetCharRotation(int charIndex)
+ {
+ if (!ValidateChar(charIndex)) return Vector3.zero;
+ return _charTransforms[charIndex].rotation.eulerAngles;
+ }
+
+ ///
+ /// Returns the current scale of the given character, if it exists and is visible.
+ ///
+ /// Character index
+ public Vector3 GetCharScale(int charIndex)
+ {
+ if (!ValidateChar(charIndex)) return Vector3.zero;
+ return _charTransforms[charIndex].scale;
+ }
+
+ #endregion
+
+ #region Char Setters
+
+ ///
+ /// Immediately sets the color of the given character.
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ /// Color to set
+ public void SetCharColor(int charIndex, Color32 color)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.UpdateColor(target, color, textInfo.meshInfo);
+ _charTransforms[charIndex] = c;
+ }
+
+ ///
+ /// Immediately sets the offset of the given character.
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ /// Offset to set
+ public void SetCharOffset(int charIndex, Vector3 offset)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.UpdateGeometry(target, offset, c.rotation, c.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = c;
+ }
+
+ ///
+ /// Immediately sets the rotation of the given character.
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ /// Rotation to set
+ public void SetCharRotation(int charIndex, Vector3 rotation)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.UpdateGeometry(target, c.offset, Quaternion.Euler(rotation), c.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = c;
+ }
+
+ ///
+ /// Immediately sets the scale of the given character.
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ /// Scale to set
+ public void SetCharScale(int charIndex, Vector3 scale)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.UpdateGeometry(target, c.offset, c.rotation, scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = c;
+ }
+
+ ///
+ /// Immediately shifts the vertices of the given character by the given factor.
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ /// Top left offset
+ /// Top right offset
+ /// Bottom left offset
+ /// Bottom right offset
+ public void ShiftCharVertices(int charIndex, Vector3 topLeftShift, Vector3 topRightShift, Vector3 bottomLeftShift, Vector3 bottomRightShift)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.ShiftVertices(target, topLeftShift, topRightShift, bottomLeftShift, bottomRightShift);
+ _charTransforms[charIndex] = c;
+ }
+
+ ///
+ /// Skews the given character horizontally along the X axis and returns the skew amount applied (based on the character's size)
+ ///
+ /// Character index
+ /// skew amount
+ /// If TRUE skews the top side of the character, otherwise the bottom one
+ public float SkewCharX(int charIndex, float skewFactor, bool skewTop = true)
+ {
+ if (!ValidateChar(charIndex)) return 0;
+ Vector3 skewV = new Vector3(skewFactor, 0, 0);
+ CharTransform c = _charTransforms[charIndex];
+ if (skewTop) c.ShiftVertices(target, skewV, skewV, Vector3.zero, Vector3.zero);
+ else c.ShiftVertices(target, Vector3.zero, Vector3.zero, skewV, skewV);
+ _charTransforms[charIndex] = c;
+ return skewFactor;
+ }
+
+ ///
+ /// Skews the given character vertically along the Y axis and returns the skew amount applied (based on the character's size)
+ ///
+ /// Character index
+ /// skew amount
+ /// If TRUE skews the right side of the character, otherwise the left one
+ /// If TRUE applies exactly the given ,
+ /// otherwise modifies it based on the aspectRation of the character
+ public float SkewCharY(int charIndex, float skewFactor, bool skewRight = true, bool fixedSkew = false)
+ {
+ if (!ValidateChar(charIndex)) return 0;
+ float skew = fixedSkew ? skewFactor : skewFactor * textInfo.characterInfo[charIndex].aspectRatio;
+ Vector3 skewV = new Vector3(0, skew, 0);
+ CharTransform c = _charTransforms[charIndex];
+ if (skewRight) c.ShiftVertices(target, Vector3.zero, skewV, Vector3.zero, skewV);
+ else c.ShiftVertices(target, skewV, Vector3.zero, skewV, Vector3.zero);
+ _charTransforms[charIndex] = c;
+ return skew;
+ }
+
+ ///
+ /// Resets the eventual vertices shift applied to the given character via .
+ /// Will do nothing if the is invalid or the character isn't visible
+ ///
+ /// Character index
+ public void ResetVerticesShift(int charIndex)
+ {
+ if (!ValidateChar(charIndex)) return;
+ CharTransform c = _charTransforms[charIndex];
+ c.ResetVerticesShift(target);
+ _charTransforms[charIndex] = c;
+ }
+
+ #endregion
+
+ #region Char Tweens
+
+ /// Tweens a character's alpha to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ public TweenerCore DOFadeChar(int charIndex, float endValue, float duration)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ TweenerCore t = DOTween.ToAlpha(() => _charTransforms[charIndex].GetColor(textInfo.meshInfo), x => {
+ _charTransforms[charIndex].UpdateAlpha(target, x, textInfo.meshInfo);
+ }, endValue, duration);
+ return t;
+ }
+
+ /// Tweens a character's color to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ public TweenerCore DOColorChar(int charIndex, Color endValue, float duration)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ TweenerCore t = DOTween.To(() => _charTransforms[charIndex].GetColor(textInfo.meshInfo), x => {
+ _charTransforms[charIndex].UpdateColor(target, x, textInfo.meshInfo);
+ }, endValue, duration);
+ return t;
+ }
+
+ /// Tweens a character's offset to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ public TweenerCore DOOffsetChar(int charIndex, Vector3 endValue, float duration)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ TweenerCore t = DOTween.To(() => _charTransforms[charIndex].offset, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, x, charT.rotation, charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, endValue, duration);
+ return t;
+ }
+
+ /// Tweens a character's rotation to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ /// Rotation mode
+ public TweenerCore DORotateChar(int charIndex, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ TweenerCore t = DOTween.To(() => _charTransforms[charIndex].rotation, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, x, charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, endValue, duration);
+ t.plugOptions.rotateMode = mode;
+ return t;
+ }
+
+ /// Tweens a character's scale to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ public TweenerCore DOScaleChar(int charIndex, float endValue, float duration)
+ {
+ return DOScaleChar(charIndex, new Vector3(endValue, endValue, endValue), duration);
+ }
+ /// Tweens a character's color to the given value and returns the .
+ /// Will return NULL if the is invalid or the character isn't visible.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The end value to reachThe duration of the tween
+ public TweenerCore DOScaleChar(int charIndex, Vector3 endValue, float duration)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ TweenerCore t = DOTween.To(() => _charTransforms[charIndex].scale, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, charT.rotation, x, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, endValue, duration);
+ return t;
+ }
+
+ /// Punches a character's offset towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The punch strength
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate per second
+ /// Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards.
+ /// 1 creates a full oscillation between the punch offset and the opposite offset,
+ /// while 0 oscillates only between the punch offset and the start offset
+ public Tweener DOPunchCharOffset(int charIndex, Vector3 punch, float duration, int vibrato = 10, float elasticity = 1)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Punch(() => _charTransforms[charIndex].offset, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, x, charT.rotation, charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, punch, duration, vibrato, elasticity);
+ }
+
+ /// Punches a character's rotation towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The punch strength
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate per second
+ /// Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards.
+ /// 1 creates a full oscillation between the punch rotation and the opposite rotation,
+ /// while 0 oscillates only between the punch rotation and the start rotation
+ public Tweener DOPunchCharRotation(int charIndex, Vector3 punch, float duration, int vibrato = 10, float elasticity = 1)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Punch(() => _charTransforms[charIndex].rotation.eulerAngles, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, Quaternion.Euler(x), charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, punch, duration, vibrato, elasticity);
+ }
+
+ /// Punches a character's scale towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The punch strength (added to the character's current scale)
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate per second
+ /// Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards.
+ /// 1 creates a full oscillation between the punch scale and the opposite scale,
+ /// while 0 oscillates only between the punch scale and the start scale
+ public Tweener DOPunchCharScale(int charIndex, float punch, float duration, int vibrato = 10, float elasticity = 1)
+ {
+ return DOPunchCharScale(charIndex, new Vector3(punch, punch, punch), duration, vibrato, elasticity);
+ }
+ /// Punches a character's scale towards the given direction and then back to the starting one
+ /// as if it was connected to the starting position via an elastic.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The punch strength (added to the character's current scale)
+ /// The duration of the tween
+ /// Indicates how much will the punch vibrate per second
+ /// Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards.
+ /// 1 creates a full oscillation between the punch scale and the opposite scale,
+ /// while 0 oscillates only between the punch scale and the start scale
+ public Tweener DOPunchCharScale(int charIndex, Vector3 punch, float duration, int vibrato = 10, float elasticity = 1)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Punch(() => _charTransforms[charIndex].scale, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, charT.rotation, x, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, punch, duration, vibrato, elasticity);
+ }
+
+ /// Shakes a character's offset with the given values.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ public Tweener DOShakeCharOffset(int charIndex, float duration, float strength, int vibrato = 10, float randomness = 90, bool fadeOut = true)
+ {
+ return DOShakeCharOffset(charIndex, duration, new Vector3(strength, strength, strength), vibrato, randomness, fadeOut);
+ }
+ /// Shakes a character's offset with the given values.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ public Tweener DOShakeCharOffset(int charIndex, float duration, Vector3 strength, int vibrato = 10, float randomness = 90, bool fadeOut = true)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Shake(() => _charTransforms[charIndex].offset, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, x, charT.rotation, charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, duration, strength, vibrato, randomness, fadeOut);
+ }
+
+ /// Shakes a character's rotation with the given values.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ public Tweener DOShakeCharRotation(int charIndex, float duration, Vector3 strength, int vibrato = 10, float randomness = 90, bool fadeOut = true)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Shake(() => _charTransforms[charIndex].rotation.eulerAngles, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, Quaternion.Euler(x), charT.scale, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, duration, strength, vibrato, randomness, fadeOut);
+ }
+
+ /// Shakes a character's scale with the given values.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ public Tweener DOShakeCharScale(int charIndex, float duration, float strength, int vibrato = 10, float randomness = 90, bool fadeOut = true)
+ {
+ return DOShakeCharScale(charIndex, duration, new Vector3(strength, strength, strength), vibrato, randomness, fadeOut);
+ }
+ /// Shakes a character's scale with the given values.
+ /// The index of the character to tween (will throw an error if it doesn't exist)
+ /// The duration of the tween
+ /// The shake strength
+ /// Indicates how much will the shake vibrate
+ /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
+ /// Setting it to 0 will shake along a single direction.
+ /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not
+ public Tweener DOShakeCharScale(int charIndex, float duration, Vector3 strength, int vibrato = 10, float randomness = 90, bool fadeOut = true)
+ {
+ if (!ValidateChar(charIndex)) return null;
+ if (duration <= 0) {
+ if (Debugger.logPriority > 0) Debug.LogWarning("Duration can't be 0, returning NULL without creating a tween");
+ return null;
+ }
+ return DOTween.Shake(() => _charTransforms[charIndex].scale, x => {
+ CharTransform charT = _charTransforms[charIndex];
+ charT.UpdateGeometry(target, charT.offset, charT.rotation, x, _cachedMeshInfos);
+ _charTransforms[charIndex] = charT;
+ }, duration, strength, vibrato, randomness, fadeOut);
+ }
+
+ #endregion
+
+ // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
+
+ struct CharVertices
+ {
+ public Vector3 bottomLeft, topLeft, topRight, bottomRight;
+
+ public CharVertices(Vector3 bottomLeft, Vector3 topLeft, Vector3 topRight, Vector3 bottomRight)
+ {
+ this.bottomLeft = bottomLeft;
+ this.topLeft = topLeft;
+ this.topRight = topRight;
+ this.bottomRight = bottomRight;
+ }
+ }
+
+ // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
+
+ // Vertices of each character are:
+ // 0 : bottom left, 1 : top left, 2 : top right, 3 : bottom right
+ struct CharTransform
+ {
+ public int charIndex;
+ public bool isVisible { get; private set; } // FALSE both if it's invisible or if it's a space
+ public Vector3 offset;
+ public Quaternion rotation;
+ public Vector3 scale;
+ Vector3 _topLeftShift, _topRightShift, _bottomLeftShift, _bottomRightShift;
+ Vector3 _charMidBaselineOffset;
+ int _matIndex, _firstVertexIndex;
+ TMP_MeshInfo _meshInfo;
+
+ public CharTransform(int charIndex, TMP_TextInfo textInfo, TMP_MeshInfo[] cachedMeshInfos) : this()
+ {
+ this.charIndex = charIndex;
+ offset = Vector3.zero;
+ rotation = Quaternion.identity;
+ scale = Vector3.one;
+ Refresh(textInfo, cachedMeshInfos);
+ }
+
+ public void Refresh(TMP_TextInfo textInfo, TMP_MeshInfo[] cachedMeshInfos)
+ {
+ TMP_CharacterInfo charInfo = textInfo.characterInfo[charIndex];
+ bool isSpaceChar = charInfo.character == ' ';
+ isVisible = charInfo.isVisible && !isSpaceChar;
+ _matIndex = charInfo.materialReferenceIndex;
+ _firstVertexIndex = charInfo.vertexIndex;
+ _meshInfo = textInfo.meshInfo[_matIndex];
+ Vector3[] cachedVertices = cachedMeshInfos[_matIndex].vertices;
+ _charMidBaselineOffset = isSpaceChar
+ ? Vector3.zero
+ : (cachedVertices[_firstVertexIndex] + cachedVertices[_firstVertexIndex + 2]) * 0.5f;
+ }
+
+ public void ResetAll(TMP_Text target, TMP_MeshInfo[] meshInfos, TMP_MeshInfo[] cachedMeshInfos)
+ {
+ ResetGeometry(target, cachedMeshInfos);
+ ResetColors(target, meshInfos);
+ }
+
+ public void ResetTransformationData()
+ {
+ offset = Vector3.zero;
+ rotation = Quaternion.identity;
+ scale = Vector3.one;
+ _topLeftShift = _topRightShift = _bottomLeftShift = _bottomRightShift = Vector3.zero;
+ }
+
+ public void ResetGeometry(TMP_Text target, TMP_MeshInfo[] cachedMeshInfos)
+ {
+ ResetTransformationData();
+ Vector3[] destinationVertices = _meshInfo.vertices;
+ Vector3[] cachedVertices = cachedMeshInfos[_matIndex].vertices;
+ destinationVertices[_firstVertexIndex + 0] = cachedVertices[_firstVertexIndex + 0];
+ destinationVertices[_firstVertexIndex + 1] = cachedVertices[_firstVertexIndex + 1];
+ destinationVertices[_firstVertexIndex + 2] = cachedVertices[_firstVertexIndex + 2];
+ destinationVertices[_firstVertexIndex + 3] = cachedVertices[_firstVertexIndex + 3];
+ _meshInfo.mesh.vertices = _meshInfo.vertices;
+ target.UpdateGeometry(_meshInfo.mesh, _matIndex);
+ }
+
+ public void ResetColors(TMP_Text target, TMP_MeshInfo[] meshInfos)
+ {
+ Color color = target.color;
+ Color32[] vertexCols = meshInfos[_matIndex].colors32;
+ vertexCols[_firstVertexIndex] = color;
+ vertexCols[_firstVertexIndex + 1] = color;
+ vertexCols[_firstVertexIndex + 2] = color;
+ vertexCols[_firstVertexIndex + 3] = color;
+ target.UpdateVertexData(TMP_VertexDataUpdateFlags.Colors32);
+ }
+
+ public Color32 GetColor(TMP_MeshInfo[] meshInfos)
+ {
+ return meshInfos[_matIndex].colors32[_firstVertexIndex];
+ }
+
+ public CharVertices GetVertices()
+ {
+ return new CharVertices(
+ _meshInfo.vertices[_firstVertexIndex], _meshInfo.vertices[_firstVertexIndex + 1],
+ _meshInfo.vertices[_firstVertexIndex + 2], _meshInfo.vertices[_firstVertexIndex + 3]
+ );
+ }
+
+ public void UpdateAlpha(TMP_Text target, Color alphaColor, TMP_MeshInfo[] meshInfos, bool apply = true)
+ {
+ byte alphaByte = (byte)(alphaColor.a * 255);
+ Color32[] vertexCols = meshInfos[_matIndex].colors32;
+ vertexCols[_firstVertexIndex].a = alphaByte;
+ vertexCols[_firstVertexIndex + 1].a = alphaByte;
+ vertexCols[_firstVertexIndex + 2].a = alphaByte;
+ vertexCols[_firstVertexIndex + 3].a = alphaByte;
+ if (apply) target.UpdateVertexData(TMP_VertexDataUpdateFlags.Colors32);
+ }
+
+ public void UpdateColor(TMP_Text target, Color32 color, TMP_MeshInfo[] meshInfos, bool apply = true)
+ {
+ Color32[] vertexCols = meshInfos[_matIndex].colors32;
+ vertexCols[_firstVertexIndex] = color;
+ vertexCols[_firstVertexIndex + 1] = color;
+ vertexCols[_firstVertexIndex + 2] = color;
+ vertexCols[_firstVertexIndex + 3] = color;
+ if (apply) target.UpdateVertexData(TMP_VertexDataUpdateFlags.Colors32);
+ }
+
+ public void UpdateGeometry(TMP_Text target, Vector3 offset, Quaternion rotation, Vector3 scale, TMP_MeshInfo[] cachedMeshInfos, bool apply = true)
+ {
+ this.offset = offset;
+ this.rotation = rotation;
+ this.scale = scale;
+
+ if (!apply) return;
+
+ Vector3[] destinationVertices = _meshInfo.vertices;
+ Vector3[] cachedVertices = cachedMeshInfos[_matIndex].vertices;
+ destinationVertices[_firstVertexIndex] = cachedVertices[_firstVertexIndex + 0] - _charMidBaselineOffset;
+ destinationVertices[_firstVertexIndex + 1] = cachedVertices[_firstVertexIndex + 1] - _charMidBaselineOffset;
+ destinationVertices[_firstVertexIndex + 2] = cachedVertices[_firstVertexIndex + 2] - _charMidBaselineOffset;
+ destinationVertices[_firstVertexIndex + 3] = cachedVertices[_firstVertexIndex + 3] - _charMidBaselineOffset;
+ Matrix4x4 matrix = Matrix4x4.TRS(this.offset, this.rotation, this.scale);
+ destinationVertices[_firstVertexIndex]
+ = matrix.MultiplyPoint3x4(destinationVertices[_firstVertexIndex + 0]) + _charMidBaselineOffset + _bottomLeftShift;
+ destinationVertices[_firstVertexIndex + 1]
+ = matrix.MultiplyPoint3x4(destinationVertices[_firstVertexIndex + 1]) + _charMidBaselineOffset + _topLeftShift;
+ destinationVertices[_firstVertexIndex + 2]
+ = matrix.MultiplyPoint3x4(destinationVertices[_firstVertexIndex + 2]) + _charMidBaselineOffset + _topRightShift;
+ destinationVertices[_firstVertexIndex + 3]
+ = matrix.MultiplyPoint3x4(destinationVertices[_firstVertexIndex + 3]) + _charMidBaselineOffset + _bottomRightShift;
+ _meshInfo.mesh.vertices = _meshInfo.vertices;
+ target.UpdateGeometry(_meshInfo.mesh, _matIndex);
+ }
+
+ public void ShiftVertices(TMP_Text target, Vector3 topLeftShift, Vector3 topRightShift, Vector3 bottomLeftShift, Vector3 bottomRightShift)
+ {
+ _topLeftShift += topLeftShift;
+ _topRightShift += topRightShift;
+ _bottomLeftShift += bottomLeftShift;
+ _bottomRightShift += bottomRightShift;
+ Vector3[] destinationVertices = _meshInfo.vertices;
+ destinationVertices[_firstVertexIndex] = destinationVertices[_firstVertexIndex] + _bottomLeftShift;
+ destinationVertices[_firstVertexIndex + 1] = destinationVertices[_firstVertexIndex + 1] + _topLeftShift;
+ destinationVertices[_firstVertexIndex + 2] = destinationVertices[_firstVertexIndex + 2] + _topRightShift;
+ destinationVertices[_firstVertexIndex + 3] = destinationVertices[_firstVertexIndex + 3] + _bottomRightShift;
+ _meshInfo.mesh.vertices = _meshInfo.vertices;
+ target.UpdateGeometry(_meshInfo.mesh, _matIndex);
+ }
+
+ public void ResetVerticesShift(TMP_Text target)
+ {
+ Vector3[] destinationVertices = _meshInfo.vertices;
+ destinationVertices[_firstVertexIndex] = destinationVertices[_firstVertexIndex] - _bottomLeftShift;
+ destinationVertices[_firstVertexIndex + 1] = destinationVertices[_firstVertexIndex + 1] - _topLeftShift;
+ destinationVertices[_firstVertexIndex + 2] = destinationVertices[_firstVertexIndex + 2] - _topRightShift;
+ destinationVertices[_firstVertexIndex + 3] = destinationVertices[_firstVertexIndex + 3] - _bottomRightShift;
+ _meshInfo.mesh.vertices = _meshInfo.vertices;
+ target.UpdateGeometry(_meshInfo.mesh, _matIndex);
+ _topLeftShift = _topRightShift = _bottomLeftShift = _bottomRightShift = Vector3.zero;
+ }
+ }
+ }
+
+ #endregion
}
#endif
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta
index 66ff6cdf3..613cdbcb5 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 8fb0d65aa5b048649a3a785b82b8f8db
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs
index 7b7c98833..0c57bfef9 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs
@@ -98,6 +98,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
@@ -219,6 +220,7 @@ namespace DG.Tweening
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
}
+ s.SetTarget(target);
return s;
}
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta
index d9c790216..c909f96cc 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: b590cd7c24ffa5d4faa5b6fa993cccad
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs
index dde83c93a..0b389643e 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs
@@ -67,7 +67,7 @@ namespace DG.DOTweenEditor
typeof(SpriteRenderer),
#endif
#if true // UI_MARKER
- typeof(Image), typeof(Text), typeof(RawImage),
+ typeof(Image), typeof(Text), typeof(RawImage), typeof(Graphic),
#endif
typeof(Renderer),
}},
@@ -77,7 +77,7 @@ namespace DG.DOTweenEditor
typeof(SpriteRenderer),
#endif
#if true // UI_MARKER
- typeof(Image), typeof(Text), typeof(CanvasGroup), typeof(RawImage),
+ typeof(Image), typeof(Text), typeof(CanvasGroup), typeof(RawImage), typeof(Graphic),
#endif
typeof(Renderer),
}},
@@ -336,7 +336,10 @@ namespace DG.DOTweenEditor
// _src.animationType = (DOTweenAnimation.AnimationType)EditorGUILayout.EnumPopup(_src.animationType, EditorGUIUtils.popupButton);
GUI.enabled = GUI.enabled && _src.isActive;
_src.animationType = AnimationToDOTweenAnimationType(_AnimationType[EditorGUILayout.Popup(DOTweenAnimationTypeToPopupId(_src.animationType), _AnimationType)]);
- _src.autoPlay = DeGUILayout.ToggleButton(_src.autoPlay, new GUIContent("AutoPlay", "If selected, the tween will play automatically"));
+ _src.autoGenerate = DeGUILayout.ToggleButton(_src.autoGenerate, new GUIContent("AutoGenerate", "If selected, the tween will be generated at startup (during Start for RectTransform position tween, Awake for all the others)"));
+ if (_src.autoGenerate) {
+ _src.autoPlay = DeGUILayout.ToggleButton(_src.autoPlay, new GUIContent("AutoPlay", "If selected, the tween will play automatically"));
+ }
_src.autoKill = DeGUILayout.ToggleButton(_src.autoKill, new GUIContent("AutoKill", "If selected, the tween will be killed when it completes, and won't be reusable"));
GUILayout.EndHorizontal();
if (prevAnimType != _src.animationType) {
@@ -381,6 +384,7 @@ namespace DG.DOTweenEditor
_src.optionalInt0 = 10;
_src.optionalFloat0 = 90;
_src.optionalBool0 = false;
+ _src.optionalBool1 = true;
break;
case DOTweenAnimation.AnimationType.CameraAspect:
case DOTweenAnimation.AnimationType.CameraFieldOfView:
@@ -463,7 +467,7 @@ namespace DG.DOTweenEditor
_src.delay = EditorGUILayout.FloatField("Delay", _src.delay);
if (_src.delay < 0) _src.delay = 0;
_src.isIndependentUpdate = EditorGUILayout.Toggle("Ignore TimeScale", _src.isIndependentUpdate);
- _src.easeType = EditorGUIUtils.FilteredEasePopup(_src.easeType);
+ _src.easeType = EditorGUIUtils.FilteredEasePopup("Ease", _src.easeType);
if (_src.easeType == Ease.INTERNAL_Custom) {
_src.easeCurve = EditorGUILayout.CurveField(" Ease Curve", _src.easeCurve);
}
@@ -533,6 +537,7 @@ namespace DG.DOTweenEditor
canBeRelative = false;
_src.optionalInt0 = EditorGUILayout.IntSlider(new GUIContent(" Vibrato", "How much will the shake vibrate"), _src.optionalInt0, 1, 50);
_src.optionalFloat0 = EditorGUILayout.Slider(new GUIContent(" Randomness", "The shake randomness"), _src.optionalFloat0, 0, 90);
+ _src.optionalBool1 = EditorGUILayout.Toggle(new GUIContent(" FadeOut", "If selected the shake will fade out, otherwise it will constantly play with full force"), _src.optionalBool1);
if (_src.animationType == DOTweenAnimation.AnimationType.ShakePosition) _src.optionalBool0 = EditorGUILayout.Toggle(" Snapping", _src.optionalBool0);
break;
case DOTweenAnimation.AnimationType.CameraAspect:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta
index a3905ce26..d2d7eee1d 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: e0203fd81362bab4d842d87ad09ee76e
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta
index 1586a4831..53780cce8 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta
@@ -1,11 +1,8 @@
fileFormatVersion: 2
guid: 22292a5f27a9a644ba9e6ad1bf863531
MonoImporter:
- externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll
index e0e8a0f77..7bce84326 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll and b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll.meta b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll.meta
index c980e74bf..62ab8c093 100644
--- a/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: a6402d4311c862b4eb1325590d6466af
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
- enabled: 1
+ Any:
+ enabled: 0
settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll
index 588641850..61b68998b 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll and b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll.meta b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll.meta
index c99073fa8..1ed91993b 100644
--- a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/DemiLib.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: 54be29b67d0d29a478da2c6e5c62f091
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
+ Any:
enabled: 1
settings: {}
+ Editor:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll
index 04a32ddee..0c792c10c 100644
Binary files a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll and b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll differ
diff --git a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta
index 75149a3c0..aa20ddfe7 100644
--- a/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta
+++ b/GQ_TongXin/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta
@@ -1,21 +1,22 @@
fileFormatVersion: 2
guid: 202f9ddaf2c1a8a429504f7f3cd7b84f
PluginImporter:
- externalObjects: {}
- serializedVersion: 2
+ serializedVersion: 1
iconMap: {}
executionOrder: {}
- defineConstraints: []
isPreloaded: 0
- isOverridable: 0
- isExplicitlyReferenced: 0
- validateReferences: 1
platformData:
- - first:
- Any:
- second:
- enabled: 1
+ Any:
+ enabled: 0
settings: {}
+ Editor:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ WindowsStoreApps:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins.meta b/GQ_TongXin/Assets/Plugins.meta
new file mode 100644
index 000000000..60080ee46
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e96abeb1f09348347b332c382de47ebf
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant.meta b/GQ_TongXin/Assets/Plugins/Demigiant.meta
new file mode 100644
index 000000000..c003b0010
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a17218ae3d0bbc443956d5db81e3e367
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTween.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween.meta
new file mode 100644
index 000000000..756e59710
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d51d58128dcf97146aec2b9e6a077dcc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules.meta
new file mode 100644
index 000000000..e954fdc44
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 68f34ce47fd3f724cabb4cba78a0ddcf
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
new file mode 100644
index 000000000..aff123565
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs
@@ -0,0 +1,142 @@
+using UnityEngine;
+
+#if false || EPO_DOTWEEN // MODULE_MARKER
+
+using EPOOutline;
+using DG.Tweening.Plugins.Options;
+using DG.Tweening;
+using DG.Tweening.Core;
+
+namespace DG.Tweening
+{
+ public static class DOTweenModuleEPOOutline
+ {
+ public static int DOKill(this SerializedPass target, bool complete)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, string propertyName, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, string propertyName, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFloat(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOFade(this SerializedPass target, int propertyId, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this SerializedPass target, int propertyId, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static int DOKill(this Outliner target, bool complete = false)
+ {
+ return DOTween.Kill(target, complete);
+ }
+
+ public static TweenerCore DOFade(this Outlinable.OutlineProperties target, float endValue, float duration)
+ {
+ var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(true).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration)
+ {
+ var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration);
+ tweener.SetOptions(false).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOInfoRendererScale(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.InfoRendererScale, x => target.InfoRendererScale = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+
+ public static TweenerCore DOPrimaryRendererScale(this Outliner target, float endValue, float duration, bool snapping = false)
+ {
+ var tweener = DOTween.To(() => target.PrimaryRendererScale, x => target.PrimaryRendererScale = x, endValue, duration);
+ tweener.SetOptions(snapping).SetTarget(target);
+ return tweener;
+ }
+ }
+}
+#endif
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
new file mode 100644
index 000000000..4b8991f55
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e944529dcaee98f4e9498d80e541d93e
+timeCreated: 1602593330
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro.meta
new file mode 100644
index 000000000..aeb08f059
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0dd3254dc63d66b459aefa5689ecf2b4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs
new file mode 100644
index 000000000..c9df3968c
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs
@@ -0,0 +1,9 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2015/03/27 19:02
+//
+// License Copyright (c) Daniele Giardini.
+// This work is subject to the terms at http://dotween.demigiant.com/license.php
+
+
+#if false // MODULE_MARKER
+#endif
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs.meta
new file mode 100644
index 000000000..32c1ec84f
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeAudio.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1d1aa01bacf85c04ea18116651a7f0db
+timeCreated: 1587116610
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs
new file mode 100644
index 000000000..c9df3968c
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs
@@ -0,0 +1,9 @@
+// Author: Daniele Giardini - http://www.demigiant.com
+// Created: 2015/03/27 19:02
+//
+// License Copyright (c) Daniele Giardini.
+// This work is subject to the terms at http://dotween.demigiant.com/license.php
+
+
+#if false // MODULE_MARKER
+#endif
diff --git a/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs.meta b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs.meta
new file mode 100644
index 000000000..9cba4ea8c
--- /dev/null
+++ b/GQ_TongXin/Assets/Plugins/Demigiant/DOTweenPro/DOTweenDeUnityExtended.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0a0cc3e90c4a6ea41bb14d7f35c577c3
+timeCreated: 1587116610
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Prefabs/HUD.meta b/GQ_TongXin/Assets/Prefabs/HUD.meta
new file mode 100644
index 000000000..149f7acac
--- /dev/null
+++ b/GQ_TongXin/Assets/Prefabs/HUD.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c2898cf3244165c46ab193903225f80f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab b/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab
new file mode 100644
index 000000000..37a776c9f
--- /dev/null
+++ b/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab
@@ -0,0 +1,150 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8992645734443754309
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8992645734443754306}
+ - component: {fileID: 8992645734443754307}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8992645734443754306
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8992645734443754309}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0.499, z: 0}
+ m_LocalScale: {x: 0.22218, y: 0.22218, z: 0.22218}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 8992645734844834622}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!212 &8992645734443754307
+SpriteRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8992645734443754309}
+ m_Enabled: 1
+ m_CastShadows: 0
+ m_ReceiveShadows: 0
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 0
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 0
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_Sprite: {fileID: 21300000, guid: 1705ebcb01175a54ba549314203ad4fc, type: 3}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_FlipX: 0
+ m_FlipY: 0
+ m_DrawMode: 0
+ m_Size: {x: 1, y: 1}
+ m_AdaptiveModeThreshold: 0.5
+ m_SpriteTileMode: 0
+ m_WasSpriteAssigned: 1
+ m_MaskInteraction: 0
+ m_SpriteSortPoint: 0
+--- !u!1 &8992645734844834592
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8992645734844834622}
+ - component: {fileID: 8992645734844834593}
+ - component: {fileID: 355914467147041394}
+ m_Layer: 0
+ m_Name: StationInformation
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8992645734844834622
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8992645734844834592}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 1.419, y: 0.423, z: 0.909}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 8992645734443754306}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &8992645734844834593
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8992645734844834592}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 58e2fbd82adbcd14aac54bb85f5464ce, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ worldOrLocal: 0
+ lockXZ: 0
+ onClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!65 &355914467147041394
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8992645734844834592}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 0.3}
+ m_Center: {x: 0, y: 0.5, z: 0}
diff --git a/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab.meta b/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab.meta
new file mode 100644
index 000000000..da9d46b7b
--- /dev/null
+++ b/GQ_TongXin/Assets/Prefabs/HUD/StationInformation.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6fe0e639b544b9b44aa22ea2bb34e59c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scenes/Focus.unity b/GQ_TongXin/Assets/Scenes/Focus.unity
new file mode 100644
index 000000000..dfbc4e3d5
--- /dev/null
+++ b/GQ_TongXin/Assets/Scenes/Focus.unity
@@ -0,0 +1,2803 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &68781643
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 68781644}
+ m_Layer: 0
+ m_Name: 2DUITarget
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &68781644
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 68781643}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1601724395}
+ - {fileID: 1373382791}
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &92069589
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 92069592}
+ - component: {fileID: 92069591}
+ - component: {fileID: 92069590}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &92069590
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 92069589}
+ m_Enabled: 1
+--- !u!20 &92069591
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 92069589}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
+ m_projectionMatrixMode: 1
+ m_GateFitMode: 2
+ m_FOVAxisMode: 0
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &92069592
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 92069589}
+ m_LocalRotation: {x: 0.29721743, y: -0, z: -0, w: 0.9548098}
+ m_LocalPosition: {x: 0, y: 9.69, z: -10.08}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 34.581, y: 0, z: 0}
+--- !u!1 &125310747
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 125310748}
+ m_Layer: 0
+ m_Name: target
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &125310748
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 125310747}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 740264469}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &287673436
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 287673437}
+ - component: {fileID: 287673441}
+ - component: {fileID: 287673440}
+ - component: {fileID: 287673439}
+ - component: {fileID: 287673438}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &287673437
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 287673436}
+ m_LocalRotation: {x: 0.24695691, y: -0, z: -0, w: 0.9690265}
+ m_LocalPosition: {x: 13.36, y: -6.56, z: 8.87}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1979378176}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 28.595, y: 0, z: 0}
+--- !u!114 &287673438
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 287673436}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f1f347c5db58cd2448b4b926d5f2d5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ status: 0
+--- !u!65 &287673439
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 287673436}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &287673440
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 287673436}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &287673441
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 287673436}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &316321454
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 316321458}
+ - component: {fileID: 316321457}
+ - component: {fileID: 316321456}
+ - component: {fileID: 316321455}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &316321455
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 316321454}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreReversedGraphics: 1
+ m_BlockingObjects: 0
+ m_BlockingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+--- !u!114 &316321456
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 316321454}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 1
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 1920, y: 1080}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!223 &316321457
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 316321454}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 0
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!224 &316321458
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 316321454}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 0, y: 0, z: 0}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 857461313}
+ - {fileID: 1863489137}
+ - {fileID: 1895532866}
+ - {fileID: 1526177513}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0, y: 0}
+--- !u!1 &332041644
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 332041645}
+ - component: {fileID: 332041648}
+ - component: {fileID: 332041647}
+ - component: {fileID: 332041646}
+ - component: {fileID: 332041649}
+ m_Layer: 0
+ m_Name: Cylinder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &332041645
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 332041644}
+ m_LocalRotation: {x: 0.19747679, y: -0.55370176, z: 0.13715054, w: 0.7972497}
+ m_LocalPosition: {x: -2.36, y: 0, z: -2.93}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1979378176}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 27.824, y: -69.561, z: 0}
+--- !u!136 &332041646
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 332041644}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5000001
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
+--- !u!23 &332041647
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 332041644}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &332041648
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 332041644}
+ m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &332041649
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 332041644}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f1f347c5db58cd2448b4b926d5f2d5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ status: 0
+--- !u!1 &568782763
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 568782764}
+ - component: {fileID: 568782766}
+ - component: {fileID: 568782765}
+ m_Layer: 5
+ m_Name: Text (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &568782764
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 568782763}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1526177513}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &568782765
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 568782763}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 42
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: "\u4FEE\u590D\u8B66\u62A5"
+--- !u!222 &568782766
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 568782763}
+ m_CullTransparentMesh: 1
+--- !u!1 &624684699
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 624684700}
+ - component: {fileID: 624684702}
+ - component: {fileID: 624684701}
+ m_Layer: 5
+ m_Name: Text (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &624684700
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 624684699}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1863489137}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &624684701
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 624684699}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 42
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: "\u89C6\u89D22"
+--- !u!222 &624684702
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 624684699}
+ m_CullTransparentMesh: 1
+--- !u!1 &740264466
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 740264469}
+ - component: {fileID: 740264468}
+ - component: {fileID: 740264467}
+ - component: {fileID: 740264470}
+ m_Layer: 0
+ m_Name: CameraController
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &740264467
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740264466}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b0b9e0f8345b2384394ba306242cd2a4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ cam: {fileID: 0}
+ x: 0
+ y: 0
+ z: 0
+ xSpeed_move: 600
+ ySpeed_move: 600
+ xSpeed_rotate: 2
+ ySpeed_rotate: 2
+ mSpeed_scale: 150
+ yMinLimit: 2
+ yMaxLimit: 90
+ leftMax: -365
+ rightMax: 365
+ distance: 20
+ minDistance: 10
+ maxDistance: 400
+ needDamping: 1
+ damping: 6
+ isRangeClamped: 0
+ xMinValue: -100
+ xMaxValue: 100
+ zMinValue: -100
+ zMaxValue: 100
+ autoRotate: 0
+ rotateTimer: 15
+ rotateSpeed: 5
+--- !u!114 &740264468
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740264466}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3eb4821edfbe33540a04ab32d1cf7212, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ logicViewList: []
+--- !u!4 &740264469
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740264466}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 125310748}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &740264470
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 740264466}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d1adfbb027f8d39459702be3e8fb2b14, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ viewOne: {fileID: 1601724395}
+ viewTwo: {fileID: 1373382791}
+ warns:
+ - {fileID: 332041649}
+ - {fileID: 1269164084}
+ - {fileID: 1376866151}
+ - {fileID: 287673438}
+ - {fileID: 917006546}
+ warnning: []
+--- !u!1 &857461312
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 857461313}
+ - component: {fileID: 857461316}
+ - component: {fileID: 857461315}
+ - component: {fileID: 857461314}
+ m_Layer: 5
+ m_Name: Button (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &857461313
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 857461312}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1962130863}
+ m_Father: {fileID: 316321458}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -742.3799, y: -412.62277}
+ m_SizeDelta: {x: 178.4402, y: 83.9545}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &857461314
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 857461312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 857461315}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 740264470}
+ m_TargetAssemblyTypeName: Focus.SwitchViews, Assembly-CSharp
+ m_MethodName: OnViewOneClick
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &857461315
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 857461312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &857461316
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 857461312}
+ m_CullTransparentMesh: 1
+--- !u!1 &917006544
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 917006545}
+ - component: {fileID: 917006549}
+ - component: {fileID: 917006548}
+ - component: {fileID: 917006547}
+ - component: {fileID: 917006546}
+ m_Layer: 0
+ m_Name: Sphere (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &917006545
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 917006544}
+ m_LocalRotation: {x: 0.15386991, y: -0, z: -0, w: 0.9880912}
+ m_LocalPosition: {x: 0.16, y: -0.83, z: 13.97}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1979378176}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 17.703, y: 0, z: 0}
+--- !u!114 &917006546
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 917006544}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f1f347c5db58cd2448b4b926d5f2d5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ status: 0
+--- !u!135 &917006547
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 917006544}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &917006548
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 917006544}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &917006549
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 917006544}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &1100186098
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1100186102}
+ - component: {fileID: 1100186101}
+ - component: {fileID: 1100186100}
+ - component: {fileID: 1100186099}
+ m_Layer: 0
+ m_Name: Cylinder (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!136 &1100186099
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1100186098}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5000001
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
+--- !u!23 &1100186100
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1100186098}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1100186101
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1100186098}
+ m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1100186102
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1100186098}
+ m_LocalRotation: {x: 0.51202077, y: -0.4100909, z: 0.24056698, w: 0.7153935}
+ m_LocalPosition: {x: -1.48, y: 0, z: 4.47}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1926131987}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 68.419, y: -67.742, z: -11.885}
+--- !u!1 &1269164079
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1269164080}
+ - component: {fileID: 1269164083}
+ - component: {fileID: 1269164082}
+ - component: {fileID: 1269164081}
+ - component: {fileID: 1269164084}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1269164080
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1269164079}
+ m_LocalRotation: {x: 0.24695691, y: -0, z: -0, w: 0.9690265}
+ m_LocalPosition: {x: -18.06, y: -6.56, z: 8.87}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1979378176}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 28.595, y: 0, z: 0}
+--- !u!65 &1269164081
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1269164079}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1269164082
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1269164079}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1269164083
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1269164079}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &1269164084
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1269164079}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f1f347c5db58cd2448b4b926d5f2d5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ status: 0
+--- !u!1 &1373382787
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1373382791}
+ - component: {fileID: 1373382790}
+ - component: {fileID: 1373382789}
+ - component: {fileID: 1373382788}
+ m_Layer: 0
+ m_Name: Capsule
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!136 &1373382788
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1373382787}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1373382789
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1373382787}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1373382790
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1373382787}
+ m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1373382791
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1373382787}
+ m_LocalRotation: {x: 0.32802507, y: -0, z: -0, w: 0.94466907}
+ m_LocalPosition: {x: 3.82, y: -0.5252029, z: 11.41}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 68781644}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 38.298, y: 0, z: 0}
+--- !u!1 &1376866146
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1376866147}
+ - component: {fileID: 1376866150}
+ - component: {fileID: 1376866149}
+ - component: {fileID: 1376866148}
+ - component: {fileID: 1376866151}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1376866147
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376866146}
+ m_LocalRotation: {x: 0.15386991, y: -0, z: -0, w: 0.9880912}
+ m_LocalPosition: {x: -13.14, y: 0, z: 11.37}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1979378176}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 17.703, y: 0, z: 0}
+--- !u!135 &1376866148
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376866146}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1376866149
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376866146}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1376866150
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376866146}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!114 &1376866151
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1376866146}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f1f347c5db58cd2448b4b926d5f2d5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ status: 0
+--- !u!1 &1426158472
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1426158473}
+ - component: {fileID: 1426158475}
+ - component: {fileID: 1426158474}
+ m_Layer: 5
+ m_Name: Text (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1426158473
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426158472}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1895532866}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1426158474
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426158472}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 42
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: "\u8B66\u62A5\u6D4B\u8BD5"
+--- !u!222 &1426158475
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1426158472}
+ m_CullTransparentMesh: 1
+--- !u!1 &1526177512
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1526177513}
+ - component: {fileID: 1526177516}
+ - component: {fileID: 1526177515}
+ - component: {fileID: 1526177514}
+ m_Layer: 5
+ m_Name: Button (Legacy) (3)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1526177513
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1526177512}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 568782764}
+ m_Father: {fileID: 316321458}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 788, y: -463}
+ m_SizeDelta: {x: 178.4402, y: 83.9545}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1526177514
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1526177512}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1526177515}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 740264470}
+ m_TargetAssemblyTypeName: Focus.SwitchViews, Assembly-CSharp
+ m_MethodName: FixeWarn
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1526177515
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1526177512}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1526177516
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1526177512}
+ m_CullTransparentMesh: 1
+--- !u!1 &1563742668
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1563742672}
+ - component: {fileID: 1563742671}
+ - component: {fileID: 1563742670}
+ - component: {fileID: 1563742669}
+ - component: {fileID: 1563742673}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1563742669
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1563742668}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1563742670
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1563742668}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1563742671
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1563742668}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1563742672
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1563742668}
+ m_LocalRotation: {x: 0.045370787, y: -0.69713485, z: 0.044291064, w: 0.7141308}
+ m_LocalPosition: {x: 3.7, y: -0.07, z: 4.26}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1999735567}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 7.271, y: -88.62, z: 0}
+--- !u!114 &1563742673
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1563742668}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb2c3e0639c2b164d9cad2af0bb107ad, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!1 &1601724391
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1601724395}
+ - component: {fileID: 1601724394}
+ - component: {fileID: 1601724393}
+ - component: {fileID: 1601724392}
+ m_Layer: 0
+ m_Name: Sphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &1601724392
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601724391}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1601724393
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601724391}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1601724394
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601724391}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1601724395
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1601724391}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -4.91, y: -0.3237106, z: 10.24}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 68781644}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1629672295
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1629672297}
+ - component: {fileID: 1629672296}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1629672296
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1629672295}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
+ m_Intensity: 1
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1629672297
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1629672295}
+ m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
+ m_LocalPosition: {x: 0, y: 3, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
+--- !u!1 &1716356406
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1716356410}
+ - component: {fileID: 1716356409}
+ - component: {fileID: 1716356408}
+ - component: {fileID: 1716356407}
+ m_Layer: 0
+ m_Name: Cylinder
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!136 &1716356407
+CapsuleCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1716356406}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ m_Radius: 0.5000001
+ m_Height: 2
+ m_Direction: 1
+ m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697}
+--- !u!23 &1716356408
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1716356406}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1716356409
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1716356406}
+ m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1716356410
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1716356406}
+ m_LocalRotation: {x: 0.20550199, y: -0, z: -0, w: 0.9786567}
+ m_LocalPosition: {x: -5.5, y: 0, z: 5.91}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1926131987}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 23.718, y: 0, z: 0}
+--- !u!1 &1863489136
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1863489137}
+ - component: {fileID: 1863489140}
+ - component: {fileID: 1863489139}
+ - component: {fileID: 1863489138}
+ m_Layer: 5
+ m_Name: Button (Legacy) (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1863489137
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1863489136}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 624684700}
+ m_Father: {fileID: 316321458}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: -510.7, y: -412.62}
+ m_SizeDelta: {x: 178.4402, y: 83.9545}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1863489138
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1863489136}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1863489139}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 740264470}
+ m_TargetAssemblyTypeName: Focus.SwitchViews, Assembly-CSharp
+ m_MethodName: OnViewTwoClick
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1863489139
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1863489136}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1863489140
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1863489136}
+ m_CullTransparentMesh: 1
+--- !u!1 &1895532865
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1895532866}
+ - component: {fileID: 1895532869}
+ - component: {fileID: 1895532868}
+ - component: {fileID: 1895532867}
+ m_Layer: 5
+ m_Name: Button (Legacy) (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1895532866
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1895532865}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1426158473}
+ m_Father: {fileID: 316321458}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 788, y: -342}
+ m_SizeDelta: {x: 178.4402, y: 83.9545}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1895532867
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1895532865}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 1895532868}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 740264470}
+ m_TargetAssemblyTypeName: Focus.SwitchViews, Assembly-CSharp
+ m_MethodName: TestWarn
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+--- !u!114 &1895532868
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1895532865}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!222 &1895532869
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1895532865}
+ m_CullTransparentMesh: 1
+--- !u!1 &1906134256
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1906134259}
+ - component: {fileID: 1906134258}
+ - component: {fileID: 1906134257}
+ m_Layer: 0
+ m_Name: EventSystem
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1906134257
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1906134256}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
+ m_HorizontalAxis: Horizontal
+ m_VerticalAxis: Vertical
+ m_SubmitButton: Submit
+ m_CancelButton: Cancel
+ m_InputActionsPerSecond: 10
+ m_RepeatDelay: 0.5
+ m_ForceModuleActive: 0
+--- !u!114 &1906134258
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1906134256}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_FirstSelected: {fileID: 0}
+ m_sendNavigationEvents: 1
+ m_DragThreshold: 10
+--- !u!4 &1906134259
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1906134256}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1926131985
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1926131987}
+ - component: {fileID: 1926131986}
+ - component: {fileID: 1926131988}
+ m_Layer: 0
+ m_Name: 3DUI
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1926131986
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926131985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e2d77674999936547b8cbaec26ef8322, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ modelInformations:
+ - stationInformation: {fileID: 8992645734844834593, guid: 6fe0e639b544b9b44aa22ea2bb34e59c, type: 3}
+ tations:
+ - {fileID: 1716356406}
+ - {fileID: 1100186098}
+--- !u!4 &1926131987
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926131985}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1716356410}
+ - {fileID: 1100186102}
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1926131988
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1926131985}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fcd3914edcdca4049a13e3cea681062d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ hudController: {fileID: 1926131986}
+--- !u!1 &1962130862
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1962130863}
+ - component: {fileID: 1962130865}
+ - component: {fileID: 1962130864}
+ m_Layer: 5
+ m_Name: Text (Legacy)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1962130863
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1962130862}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 857461313}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1962130864
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1962130862}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 42
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 42
+ m_Alignment: 4
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: "\u89C6\u89D21"
+--- !u!222 &1962130865
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1962130862}
+ m_CullTransparentMesh: 1
+--- !u!1 &1979378175
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1979378176}
+ m_Layer: 0
+ m_Name: Warnning
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1979378176
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1979378175}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 332041645}
+ - {fileID: 1269164080}
+ - {fileID: 1376866147}
+ - {fileID: 287673437}
+ - {fileID: 917006545}
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1999735566
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1999735567}
+ m_Layer: 0
+ m_Name: ModelClick
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1999735567
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1999735566}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1563742672}
+ - {fileID: 2067948293}
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2067948289
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2067948293}
+ - component: {fileID: 2067948292}
+ - component: {fileID: 2067948291}
+ - component: {fileID: 2067948290}
+ - component: {fileID: 2067948294}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &2067948290
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2067948289}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &2067948291
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2067948289}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &2067948292
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2067948289}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &2067948293
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2067948289}
+ m_LocalRotation: {x: 0.21369737, y: -0, z: -0, w: 0.9768999}
+ m_LocalPosition: {x: 0.15, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 1999735567}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 24.678, y: 0, z: 0}
+--- !u!114 &2067948294
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2067948289}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: eb2c3e0639c2b164d9cad2af0bb107ad, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
diff --git a/GQ_TongXin/Assets/Scenes/Focus.unity.meta b/GQ_TongXin/Assets/Scenes/Focus.unity.meta
new file mode 100644
index 000000000..146c835d1
--- /dev/null
+++ b/GQ_TongXin/Assets/Scenes/Focus.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c5968322b51b24a4699568f3b5fe636c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Base.meta b/GQ_TongXin/Assets/Scripts/Base.meta
new file mode 100644
index 000000000..57b81f23e
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Base.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5642be0605a7d4c4699bd28d3f564520
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs b/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs
new file mode 100644
index 000000000..7f264e3d0
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs
@@ -0,0 +1,86 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class MonoSingleton : MonoBehaviour where T : MonoSingleton
+{
+ // [SerializeField] private bool _isLoadNotDestory = true;
+
+ private static T instance;
+ private static object locker = new object();
+
+
+
+ public static T Instance
+ {
+ get
+ {
+ if (instance == null)
+ {
+ lock (locker)
+ {
+ T[] instances = FindObjectsOfType();
+ if (FindObjectsOfType().Length >= 1)
+ {
+ instance = instances[0];
+ for (int i = 1; i < instances.Length; i++)
+ {
+#if UNITY_EDITOR
+ Debug.LogError($"{typeof(T)} 不应该存在多个单例!{instances[i].name}");
+#endif
+ Destroy(instances[i]);
+ }
+
+ return instance;
+ }
+
+ if (instance == null && Application.isPlaying)
+ {
+ var singleton = new GameObject();
+ instance = singleton.AddComponent();
+ singleton.name = "(singleton)_" + typeof(T);
+ }
+ else
+ {
+ // DontDestroyOnLoad(instance.gameObject);
+ }
+ }
+ // instance.hideFlags = HideFlags.None;
+ }
+
+ return instance;
+ }
+ }
+
+ // public static bool IsInitialized
+ // {
+ // get
+ // {
+ // return instance != null;
+ // }
+ // }
+
+ protected virtual void Awake()
+ {
+ // if (_isLoadNotDestory)
+ // {
+ // DontDestroyOnLoad(this);
+ // }
+ // if (instance != null)
+ // {
+ // Debug.LogErrorFormat("Trying to instantiate a second instance of singleton class {0}", GetType().Name);
+ // }
+ // else
+ // {
+ // instance = (T)this;
+ // }
+ }
+
+ // public virtual void OnDestroy()
+ // {
+ // if (instance == this)
+ // {
+ // instance = null;
+ // }
+ // }
+}
diff --git a/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs.meta b/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs.meta
new file mode 100644
index 000000000..fdd1fe36b
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Base/MonoSingleton.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 940d26f8b14309d4196d0b4b9adb88f6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Camera.meta b/GQ_TongXin/Assets/Scripts/Camera.meta
new file mode 100644
index 000000000..9deac49cb
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 351698f4b841690479b9d88c8dd264e5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs b/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs
new file mode 100644
index 000000000..7bfbbbe19
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs
@@ -0,0 +1,102 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using DG.Tweening;
+
+public class CameraMgr : MonoSingleton
+{
+ CameraRT camera_Rt;
+
+ Vector3 originPos;
+ Vector3 originRot;
+
+ // [Header("业务视角点")]
+ public List logicViewList = new List();
+
+ private void Awake()
+ {
+ camera_Rt = GetComponent();
+ }
+
+ public void SetOrigin()
+ {
+ originPos = Camera.main.transform.position;
+ originRot = Camera.main.transform.localEulerAngles;
+ }
+
+ public void GotoView(string viewName)
+ {
+ Transform viewTarget = logicViewList.Find(x => x.name == viewName);
+ camera_Rt.SetTarget(viewTarget);
+ }
+
+
+ public void GotoView(string viewName, float _distance)
+ {
+ Transform viewTarget = logicViewList.Find(x => x.name == viewName);
+
+ camera_Rt.SetTarget(viewTarget, _distance);
+
+ }
+
+ public void GotoView(Transform viewTarget, float _distance)
+ {
+ camera_Rt.SetTarget(viewTarget, _distance);
+ }
+ public void GotoView(Vector3 viewTarget, float _distance)
+ {
+ camera_Rt.SetTarget(viewTarget, _distance);
+ }
+
+ public void ReturnToMain()
+ {
+ Camera.main.transform.DORotate(originRot, 1);
+
+ Camera.main.transform.DOMove(originPos, 1);
+ }
+
+
+
+ #region 自动切换预设视角
+ //[Header("漫游视角自动切换")]
+ //public bool autoChangeView = false;
+
+ //public float changeViewTimer;
+
+ //public List autoChangeViewList;
+
+ //int index = 0;
+ //void ChangeView()
+ //{
+ // if (!autoChangeView)
+ // return;
+
+
+ // if (index > autoChangeViewList.Count - 1)
+ // {
+ // index = 0;
+
+ // ReturnToMain();
+ // return;
+ // }
+
+ // Camera.main.transform.position = autoChangeViewList[index].position;
+ // Camera.main.transform.localEulerAngles = autoChangeViewList[index].localEulerAngles;
+
+ // index++;
+ //}
+
+ //public void AutoChangeView_Open()
+ //{
+ // autoChangeView = true;
+ // CancelInvoke("ChangeView");
+ // InvokeRepeating("ChangeView", 15, 15);
+ //}
+
+ //public void AutoChangeView_Close()
+ //{
+ // autoChangeView = false;
+ //}
+
+ #endregion
+}
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs.meta b/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs.meta
new file mode 100644
index 000000000..3316d185c
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraMgr.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3eb4821edfbe33540a04ab32d1cf7212
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs
new file mode 100644
index 000000000..3c8f93ec2
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs
@@ -0,0 +1,271 @@
+using System.Collections;
+using System.Collections.Generic;
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+using UnityEngine;
+using UnityEngine.EventSystems;
+
+///
+/// 相机控制
+///
+
+public class CameraRT : MonoBehaviour
+{
+ public Camera cam;
+
+ [Header("目标物体")]
+ Transform target;
+
+ [Header("旋转角度")]
+ public float x = 0f;
+ public float y = 0f;
+ public float z = 0f;
+
+ [Header("移动、旋转、缩放速度值")]
+ public float xSpeed_move = 600;
+ public float ySpeed_move = 600;
+ public float xSpeed_rotate = 2;
+ public float ySpeed_rotate = 2;
+ public float mSpeed_scale = 150;
+
+ [Header("y轴角度限制")]
+ public float yMinLimit = 2;
+ public float yMaxLimit = 90;
+
+ [Header("x轴角度限制")]
+ public float leftMax = -365;
+ public float rightMax = 365;
+
+ [Header("距离限制")]
+ public float distance = 400;
+ public float minDistance = 10f;
+ public float maxDistance = 400f;
+
+ [Header("阻尼设置")]
+ public bool needDamping = true;
+ public float damping = 6f;
+
+ [Header("相机活动范围")]
+ public bool isRangeClamped;
+ public float xMinValue = -100f;
+ public float xMaxValue = 100f;
+ public float zMinValue = -100f;
+ public float zMaxValue = 100f;
+
+ [Header("自动旋转")]
+ public bool autoRotate;
+ public float rotateTimer = 15;
+ public float rotateSpeed = 5;
+
+ float rotateTimer_temp;
+ bool isAutoRotating = false;
+
+
+ //动态调节相机缩放的灵敏度
+ float tempSpeed;
+
+ private void Start()
+ {
+ if (cam == null)
+ {
+ cam = Camera.main;
+ }
+
+ target = transform.GetChild(0);
+ target.gameObject.AddComponent();
+
+ x = cam.transform.localEulerAngles.y;
+ y = cam.transform.localEulerAngles.x;
+
+ tempSpeed = xSpeed_move;
+ rotateTimer_temp = rotateTimer;
+ }
+
+ public void SetTarget(Transform _target)
+ {
+ target.position = _target.position;
+ distance = _target.localScale.x;
+
+ y = _target.eulerAngles.x;
+ x = _target.eulerAngles.y;
+ }
+
+
+ public void SetTarget(Transform _target, float _distance)
+ {
+ target.position = _target.position;
+ distance = _distance;
+
+ y = _target.eulerAngles.x;
+ x = _target.eulerAngles.y;
+ }
+
+ public void SetTarget(Vector3 _target, float _distance)
+ {
+ target.position = _target;
+ distance = _distance;
+
+ //y = _target.eulerAngles.x;
+ //x = _target.eulerAngles.y;
+ }
+
+ Vector3 oldMousePos;
+ void Update()
+ {
+ if (!autoRotate)
+ return;
+
+ if (oldMousePos != Input.mousePosition || Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetMouseButtonDown(2))
+ {
+ rotateTimer = rotateTimer_temp;
+ if (isAutoRotating)
+ {
+ x = cam.transform.eulerAngles.y;
+ y = cam.transform.eulerAngles.x;
+ }
+
+ }
+ oldMousePos = Input.mousePosition;
+
+
+ if (rotateTimer <= 0)
+ {
+ isAutoRotating = true;
+ //cam.transform.LookAt(target);
+ //cam.transform.RotateAround(target.position, Vector3.up, -Time.deltaTime * rotateSpeed);
+ rotateTimer = rotateTimer_temp;
+ }
+ else
+ {
+ rotateTimer -= Time.deltaTime;
+ isAutoRotating = false;
+ }
+ }
+
+
+ void LateUpdate()
+ {
+ if (isAutoRotating)
+ return;
+
+ if (target)
+ {
+ Scroll();
+ Move();
+ Rotate();
+
+ Quaternion rotation = Quaternion.Euler(y, x, z);
+ Vector3 disVector = new Vector3(0.0f, 0.0f, -distance);
+ Vector3 position = rotation * disVector + target.position;
+
+ // 阻尼感
+ if (needDamping)
+ {
+ cam.transform.rotation = Quaternion.Lerp(cam.transform.rotation, rotation, Time.deltaTime * damping);
+ cam.transform.position = Vector3.Lerp(cam.transform.position, position, Time.deltaTime * damping);
+ }
+ else
+ {
+ cam.transform.rotation = rotation;
+ cam.transform.position = position;
+ }
+ }
+ }
+
+ void Move()
+ {
+ if (EventSystem.current.IsPointerOverGameObject())
+ return;
+
+ if (Input.GetMouseButton(0))
+ {
+ float h = Input.GetAxis("Mouse X") * Time.deltaTime * xSpeed_move;
+ float v = Input.GetAxis("Mouse Y") * Time.deltaTime * ySpeed_move;
+
+ target.Translate(-h, 0, -v);
+
+
+ if (!isRangeClamped)
+ return;
+ float targetX = target.position.x;
+ targetX = Mathf.Clamp(targetX, xMinValue, xMaxValue);
+ float targetZ = target.position.z;
+ targetZ = Mathf.Clamp(targetZ, zMinValue, zMaxValue);
+
+ target.position = new Vector3(targetX, target.position.y, targetZ);
+ }
+ }
+
+ void Rotate()
+ {
+ if (Input.GetMouseButton(1))
+ {
+
+ // 判断是否需要反向旋转
+ if ((y > 90f && y < 270f) || (y < -90 && y > -270f))
+ {
+ x -= Input.GetAxis("Mouse X") * xSpeed_rotate;
+ }
+ else
+ {
+ x += Input.GetAxis("Mouse X") * xSpeed_rotate;
+ }
+ y -= Input.GetAxis("Mouse Y") * ySpeed_rotate;
+
+ x = ClampAngle(x, leftMax, rightMax);
+ y = ClampAngle(y, yMinLimit, yMaxLimit);
+ }
+ }
+
+ void Scroll()
+ {
+ distance -= Input.GetAxis("Mouse ScrollWheel") * mSpeed_scale;
+ distance = Mathf.Clamp(distance, minDistance, maxDistance);
+
+ xSpeed_move = distance / maxDistance * tempSpeed;
+ ySpeed_move = distance / maxDistance * tempSpeed;
+ }
+
+ // 对数值进行限制
+ float ClampAngle(float angle, float min, float max)
+ {
+ if (angle < -360)
+ angle += 360;
+ if (angle > 360)
+ angle -= 360;
+ return Mathf.Clamp(angle, min, max);
+ }
+
+
+#if UNITY_EDITOR
+ private void OnDrawGizmosSelected()
+ {
+ //如果限制活动范围 将区域范围绘制出来
+ if (isRangeClamped)
+ {
+ Handles.color = Color.cyan;
+ Vector3[] points = new Vector3[8]
+ {
+ new Vector3(xMinValue, 0, zMinValue),
+ new Vector3(xMaxValue, 0, zMinValue),
+ new Vector3(xMaxValue, 0, zMaxValue),
+ new Vector3(xMinValue, 0, zMaxValue),
+ new Vector3(xMinValue, 0, zMinValue),
+ new Vector3(xMaxValue, 0, zMinValue),
+ new Vector3(xMaxValue, 0, zMaxValue),
+ new Vector3(xMinValue, 0, zMaxValue)
+ };
+ for (int i = 0; i < 4; i++)
+ {
+ int start = i % 4;
+ int end = (i + 1) % 4;
+ Handles.DrawLine(points[start], points[end]);
+ Handles.DrawLine(points[start + 4], points[end + 4]);
+ Handles.DrawLine(points[start], points[i + 4]);
+ }
+ }
+ }
+#endif
+}
+
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs.meta b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs.meta
new file mode 100644
index 000000000..c36a5ae26
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b0b9e0f8345b2384394ba306242cd2a4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs b/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs
new file mode 100644
index 000000000..0602ca05e
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs
@@ -0,0 +1,11 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class CameraTargetFollowCam : MonoBehaviour
+{
+ void Update()
+ {
+ transform.localEulerAngles = new Vector3(0, Camera.main.transform.localEulerAngles.y, Camera.main.transform.localEulerAngles.z);
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs.meta b/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs.meta
new file mode 100644
index 000000000..db250219f
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/CameraTargetFollowCam.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5dd7a8c053d2b724197101a3ce4d0f94
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs b/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs
new file mode 100644
index 000000000..a95021410
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs
@@ -0,0 +1,61 @@
+using UnityEngine;
+
+///
+/// 面向相机
+///
+public class Face2Camera : MonoBehaviour
+{
+ //主相机
+ public Camera mainCamera;
+ //翻转背面
+ public bool invertBack;
+ //是否启用垂直方向上的朝向
+ //设为false时 仅在水平方向上面向相机
+ public bool isEnableVertical = true;
+ //是否启用插值运算
+ public bool isEnableLerp;
+ //插值到目标值所需的时间 isEnableLerp为true时起作用
+ [Range(0.01f, 1f), SerializeField] private float lerpTime = 1f;
+
+ public float _distance;//最大距离
+
+ Vector3 initScale;
+
+ private void Start()
+ {
+ if (mainCamera == null)
+ {
+ mainCamera = Camera.main ?? FindObjectOfType();
+ }
+
+ initScale = transform.localScale;
+ }
+
+ private void Update()
+ {
+ if (mainCamera == null)
+ return;
+
+ Vector3 forward = (isEnableVertical
+ ? -mainCamera.transform.forward
+ : Vector3.ProjectOnPlane((mainCamera.transform.position - transform.position).normalized, Vector3.up))
+ * (invertBack ? 1 : -1);
+
+ transform.forward = !isEnableLerp ? forward
+ : Vector3.Lerp(transform.forward, forward, 1f - Mathf.Exp(Mathf.Log(1f - .99f) / lerpTime * Time.deltaTime));
+
+ float distance = Vector3.Distance(Camera.main.transform.position, transform.position);//不断变化的距离
+ float scale = distance / _distance;
+ if (scale > 1f)
+ scale = 1f;
+ transform.localScale = initScale * scale;
+ }
+
+ //public Face2Camera Set(Camera mainCamera, bool invertBack, bool isEnableVertical)
+ //{
+ // this.mainCamera = mainCamera;
+ // this.invertBack = invertBack;
+ // this.isEnableVertical = isEnableVertical;
+ // return this;
+ //}
+}
\ No newline at end of file
diff --git a/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs.meta b/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs.meta
new file mode 100644
index 000000000..b0e29c100
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Camera/Face2Camera.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ddfad4468ea99f145bc0b1cd5782d954
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Focus.meta b/GQ_TongXin/Assets/Scripts/Focus.meta
new file mode 100644
index 000000000..4eefc4ab8
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ca8e16717c0394248b3589cd866cc7e5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs b/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs
new file mode 100644
index 000000000..c37a10cb2
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs
@@ -0,0 +1,23 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author YangHua
+//@create 20230531
+//@company Adam
+//
+//@description:
+//============================================================
+namespace Focus
+{
+ public class ModelClick : MonoBehaviour
+ {
+
+ private void OnMouseDown()
+ {
+ CameraMgr.Instance.GotoView(transform, 10f);
+ }
+
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs.meta b/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs.meta
new file mode 100644
index 000000000..da6116660
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/ModelClick.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: eb2c3e0639c2b164d9cad2af0bb107ad
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs b/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs
new file mode 100644
index 000000000..379569ccd
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs
@@ -0,0 +1,34 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author #AUTHOR#
+//@create #CREATEDATE#
+//@company #COMPANY#
+//
+//@description:
+//============================================================
+
+public enum Status
+{
+ Normal,
+ Warn,
+}
+
+public class SwitchStatus : MonoBehaviour
+{
+ public Status status = Status.Normal;
+
+ private void Update()
+ {
+ if (status == Status.Warn)
+ {
+ gameObject.GetComponent().material.color = Color.yellow;
+ }
+ else
+ {
+ gameObject.GetComponent().material.color = Color.green;
+ }
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs.meta b/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs.meta
new file mode 100644
index 000000000..315ad6516
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/SwitchStatus.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f1f347c5db58cd2448b4b926d5f2d5f5
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs b/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs
new file mode 100644
index 000000000..949967c3a
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs
@@ -0,0 +1,109 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author YangHua
+//@create 20230531
+//@company Adam
+//
+//@description:
+//============================================================
+namespace Focus
+{
+ public class SwitchViews : MonoBehaviour
+ {
+
+ public Transform viewOne;
+ public Transform viewTwo;
+ public List warns = new List();
+ public List warnning = new List();
+ public int count = 0;
+
+
+ public void OnViewOneClick()
+ {
+ CameraMgr.Instance.GotoView(viewOne, 10f);
+ }
+
+ public void OnViewTwoClick()
+ {
+ CameraMgr.Instance.GotoView(viewTwo, 10f);
+ }
+
+
+ public void TestWarn()
+ {
+ int index = Random.Range(0, warns.Count);
+ warns[index].status = Status.Warn;
+ }
+
+ public void FixeWarn()
+ {
+ for (int i = 0; i < warns.Count; i++)
+ {
+ warns[i].status = Status.Normal;
+ }
+ }
+
+ public void Update()
+ {
+ SwitchWarn();
+ if (warnning.Count > count)
+ {
+ CameraMgr.Instance.GotoView(CalculateBounding(warnning).center, 15f);
+ Debug.Log("once");
+ }
+ count = warnning.Count;
+ }
+
+ ///
+ /// 监视报警状态
+ ///
+ public void SwitchWarn()
+ {
+ for (int i = 0; i < warns.Count; i++)
+ {
+ if (warns[i].status == Status.Warn && !warnning.Contains(warns[i].gameObject))
+ warnning.Add(warns[i].gameObject);
+ else if (warns[i].status == Status.Normal && warnning.Contains(warns[i].gameObject))
+ warnning.Remove(warns[i].gameObject);
+ }
+ }
+
+
+
+
+ public Bounds CalculateBounding(List objs)
+ {
+ if (objs.Count > 0)
+ {
+ Bounds b = objs[0].GetComponent().bounds;
+ if (objs.Count > 1)
+ {
+ for (int i = 1; i < objs.Count; i++)
+ {
+ b.Encapsulate(objs[i].GetComponent().bounds);
+ }
+ return b;
+ }
+ else
+ {
+ return b;
+ }
+ }
+ return new Bounds();
+ }
+
+ private void OnDrawGizmos()
+ {
+ if (warnning.Count > 0)
+ {
+ var bounds = CalculateBounding(warnning);
+ Gizmos.color = Color.red;
+ Gizmos.DrawWireCube(center: bounds.center, size: bounds.size);
+ }
+ }
+ }
+
+}
diff --git a/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs.meta b/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs.meta
new file mode 100644
index 000000000..8e0af98c6
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/SwitchViews.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d1adfbb027f8d39459702be3e8fb2b14
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs b/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs
new file mode 100644
index 000000000..c97792c50
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs
@@ -0,0 +1,36 @@
+using Adam;
+using HUD;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author YangHua
+//@create 20230531
+//@company Adam
+//
+//@description:
+//============================================================
+namespace Focus
+{
+ public class ThreeDUIClick : MonoBehaviour
+ {
+ public HUDController hudController;
+ // Use this for initialization
+ private void Start()
+ {
+ for (int i = 0; i < hudController.modelInformations.Count; i++)
+ {
+ for (int j = 0; j < hudController.modelInformations[i].tations.Count; j++)
+ {
+ int modelIndex = i;
+ int tationIndex = j;
+ hudController.modelInformations[i].tations[j].transform.GetChild(0).GetComponent().onClick.AddListener(() =>
+ {
+ CameraMgr.Instance.GotoView(hudController.modelInformations[modelIndex].tations[tationIndex].transform, 20f);
+ });
+ }
+ }
+ }
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs.meta b/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs.meta
new file mode 100644
index 000000000..8af85d4ef
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/Focus/ThreeDUIClick.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fcd3914edcdca4049a13e3cea681062d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/HUD.meta b/GQ_TongXin/Assets/Scripts/HUD.meta
new file mode 100644
index 000000000..20136d8bc
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/HUD.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4e8b5aea9cd4868428e02fdddacd61b5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs b/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs
new file mode 100644
index 000000000..dc270a5a3
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs
@@ -0,0 +1,62 @@
+using HUD;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author YangHua
+//@create 20230426
+//@company Adam
+//
+//@description:
+//============================================================
+namespace Adam
+{
+ [Serializable]
+ public struct ModelInformation
+ {
+ public StationInformation stationInformation;
+ public List tations;
+ }
+ public class HUDController : MonoBehaviour
+ {
+
+ public List modelInformations = new List();
+
+ // Use this for initialization
+ private void Awake()
+ {
+ for (int i = 0; i < modelInformations.Count; i++)
+ {
+ for (int j = 0; j < modelInformations[i].tations.Count; j++)
+ {
+ StationInformation si = Instantiate(modelInformations[i].stationInformation);
+ GameObject go = modelInformations[i].tations[j];
+ si.SetTarget(Camera.main.transform);
+ si.Init(go.transform, GetBounds(go));
+ }
+ }
+ }
+
+ private Bounds GetBounds(GameObject obj)
+ {
+ Bounds bounds = new Bounds();
+ if (obj.transform.childCount != 0)
+ {
+ Renderer[] renderers = obj.GetComponentsInChildren();
+ for (int i = 0; i < renderers.Length; i++)
+ {
+ bounds.Encapsulate(renderers[i].bounds);
+ }
+ }
+ else
+ {
+ bounds = obj.GetComponent().bounds;
+ }
+ return bounds;
+ }
+
+
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs.meta b/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs.meta
new file mode 100644
index 000000000..bd115b218
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/HUD/HUDController.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e2d77674999936547b8cbaec26ef8322
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs b/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs
new file mode 100644
index 000000000..0c29908b6
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs
@@ -0,0 +1,82 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Events;
+//============================================================
+//支持中文,文件使用UTF-8编码
+//@author YangHua
+//@create 20230426
+//@company Adam
+//
+//@description:
+//============================================================
+namespace HUD
+{
+ public enum WorldOrLocal
+ {
+ World,
+ Local
+ }
+ public class StationInformation : MonoBehaviour
+ {
+ //public float offsetY = 1f;
+
+ public WorldOrLocal worldOrLocal = WorldOrLocal.World;
+ public bool lockXZ = false;
+ public UnityEvent onClick;
+ private Transform lookAtTarget;
+
+
+ public void SetTarget(Transform target)
+ {
+ lookAtTarget = target;
+ }
+
+ public void Init(Transform parent, Bounds b)
+ {
+ transform.SetParent(parent);
+ transform.localPosition = Vector3.zero;
+ Vector3 pos = b.center;
+ Vector3 extentsPos = b.extents;
+ if (worldOrLocal == WorldOrLocal.Local)
+ {
+ //transform.localEulerAngles = Vector3.zero;
+ Vector3 localPos = transform.InverseTransformPoint(pos);
+ transform.localPosition = new Vector3(localPos.x, localPos.y + extentsPos.y, localPos.z);
+ }
+ else if (worldOrLocal == WorldOrLocal.World)
+ {
+
+ Vector3 localPos = transform.InverseTransformPoint(pos);
+ Vector3 worldPos = transform.TransformPoint(localPos);
+ transform.position = new Vector3(worldPos.x, worldPos.y + extentsPos.y + 1f, worldPos.z);
+ }
+ else
+ {
+
+ }
+ }
+
+ private void Update()
+ {
+ if (lookAtTarget != null)
+ {
+ Vector3 pos;
+ if (lockXZ)
+ {
+ pos = new Vector3(lookAtTarget.localPosition.x, 0, lookAtTarget.localPosition.z);
+ }
+ else
+ {
+ pos = lookAtTarget.localPosition;
+ }
+ transform.LookAt(pos);
+ }
+ }
+
+ private void OnMouseDown()
+ {
+ onClick?.Invoke();
+ }
+ }
+}
diff --git a/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs.meta b/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs.meta
new file mode 100644
index 000000000..e56447192
--- /dev/null
+++ b/GQ_TongXin/Assets/Scripts/HUD/StationInformation.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 58e2fbd82adbcd14aac54bb85f5464ce
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GQ_TongXin/Assets/Textures/hexagon.png b/GQ_TongXin/Assets/Textures/hexagon.png
new file mode 100644
index 000000000..1192ea2d2
Binary files /dev/null and b/GQ_TongXin/Assets/Textures/hexagon.png differ
diff --git a/GQ_TongXin/Assets/Textures/hexagon.png.meta b/GQ_TongXin/Assets/Textures/hexagon.png.meta
new file mode 100644
index 000000000..89988860c
--- /dev/null
+++ b/GQ_TongXin/Assets/Textures/hexagon.png.meta
@@ -0,0 +1,91 @@
+fileFormatVersion: 2
+guid: 1705ebcb01175a54ba549314203ad4fc
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 10
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: 16
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant: