summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty')
-rw-r--r--Assets/ThirdParty/BezierCurves.meta8
-rw-r--r--Assets/ThirdParty/BezierCurves/Editor.meta8
-rw-r--r--Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs263
-rw-r--r--Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs.meta11
-rw-r--r--Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs152
-rw-r--r--Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs.meta11
-rw-r--r--Assets/ThirdParty/BezierCurves/Example.unity2693
-rw-r--r--Assets/ThirdParty/BezierCurves/Example.unity.meta7
-rw-r--r--Assets/ThirdParty/BezierCurves/Scripts.meta8
-rw-r--r--Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs557
-rw-r--r--Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs.meta11
-rw-r--r--Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs170
-rw-r--r--Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs.meta11
-rw-r--r--Assets/ThirdParty/BezierCurves/readme.txt17
-rw-r--r--Assets/ThirdParty/BezierCurves/readme.txt.meta7
15 files changed, 3934 insertions, 0 deletions
diff --git a/Assets/ThirdParty/BezierCurves.meta b/Assets/ThirdParty/BezierCurves.meta
new file mode 100644
index 00000000..9cdf0ebd
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9197bbc995131b540992e612778cda6b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Editor.meta b/Assets/ThirdParty/BezierCurves/Editor.meta
new file mode 100644
index 00000000..6f9a2fe8
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Editor.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44c9672b8a3e4e64088d4b277f0348fb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs b/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs
new file mode 100644
index 00000000..6a6c04f6
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs
@@ -0,0 +1,263 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+[CustomEditor(typeof(BezierCurve))]
+public class BezierCurveEditor : Editor
+{
+ BezierCurve curve;
+ SerializedProperty resolutionProp;
+ SerializedProperty closeProp;
+ SerializedProperty pointsProp;
+ SerializedProperty colorProp;
+
+ private static bool showPoints = true;
+
+ void OnEnable()
+ {
+ curve = (BezierCurve)target;
+
+ resolutionProp = serializedObject.FindProperty("resolution");
+ closeProp = serializedObject.FindProperty("_close");
+ pointsProp = serializedObject.FindProperty("points");
+ colorProp = serializedObject.FindProperty("drawColor");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+
+ EditorGUILayout.PropertyField(resolutionProp);
+ EditorGUILayout.PropertyField(closeProp);
+ EditorGUILayout.PropertyField(colorProp);
+
+ showPoints = EditorGUILayout.Foldout(showPoints, "Points");
+
+ if(showPoints)
+ {
+ int pointCount = pointsProp.arraySize;
+
+ for(int i = 0; i < pointCount; i++)
+ {
+ DrawPointInspector(curve[i], i);
+ }
+
+ if(GUILayout.Button("Add Point"))
+ {
+ Undo.RegisterSceneUndo("Add Point");
+
+ GameObject pointObject = new GameObject("Point "+pointsProp.arraySize);
+ pointObject.transform.parent = curve.transform;
+ pointObject.transform.localPosition = Vector3.zero;
+ BezierPoint newPoint = pointObject.AddComponent<BezierPoint>();
+
+ newPoint.curve = curve;
+ newPoint.handle1 = Vector3.right*0.1f;
+ newPoint.handle2 = -Vector3.right*0.1f;
+
+ pointsProp.InsertArrayElementAtIndex(pointsProp.arraySize);
+ pointsProp.GetArrayElementAtIndex(pointsProp.arraySize - 1).objectReferenceValue = newPoint;
+ }
+ }
+
+ if(GUI.changed)
+ {
+ serializedObject.ApplyModifiedProperties();
+ EditorUtility.SetDirty(target);
+ }
+ }
+
+ void OnSceneGUI()
+ {
+ for(int i = 0; i < curve.pointCount; i++)
+ {
+ DrawPointSceneGUI(curve[i]);
+ }
+ }
+
+ void DrawPointInspector(BezierPoint point, int index)
+ {
+ SerializedObject serObj = new SerializedObject(point);
+
+ SerializedProperty handleStyleProp = serObj.FindProperty("handleStyle");
+ SerializedProperty handle1Prop = serObj.FindProperty("_handle1");
+ SerializedProperty handle2Prop = serObj.FindProperty("_handle2");
+
+ EditorGUILayout.BeginHorizontal();
+
+ if(GUILayout.Button("X", GUILayout.Width(20)))
+ {
+ Undo.RegisterSceneUndo("Remove Point");
+ pointsProp.MoveArrayElement(curve.GetPointIndex(point), curve.pointCount - 1);
+ pointsProp.arraySize--;
+ DestroyImmediate(point.gameObject);
+ return;
+ }
+
+ EditorGUILayout.ObjectField(point.gameObject, typeof(GameObject), true);
+
+ if(index != 0 && GUILayout.Button(@"/\", GUILayout.Width(25)))
+ {
+ UnityEngine.Object other = pointsProp.GetArrayElementAtIndex(index - 1).objectReferenceValue;
+ pointsProp.GetArrayElementAtIndex(index - 1).objectReferenceValue = point;
+ pointsProp.GetArrayElementAtIndex(index).objectReferenceValue = other;
+ }
+
+ if(index != pointsProp.arraySize - 1 && GUILayout.Button(@"\/", GUILayout.Width(25)))
+ {
+ UnityEngine.Object other = pointsProp.GetArrayElementAtIndex(index + 1).objectReferenceValue;
+ pointsProp.GetArrayElementAtIndex(index + 1).objectReferenceValue = point;
+ pointsProp.GetArrayElementAtIndex(index).objectReferenceValue = other;
+ }
+
+ EditorGUILayout.EndHorizontal();
+
+ EditorGUI.indentLevel++;
+ EditorGUI.indentLevel++;
+
+ int newType = (int)((object)EditorGUILayout.EnumPopup("Handle Type", (BezierPoint.HandleStyle)handleStyleProp.enumValueIndex));
+
+ if(newType != handleStyleProp.enumValueIndex)
+ {
+ handleStyleProp.enumValueIndex = newType;
+ if(newType == 0)
+ {
+ if(handle1Prop.vector3Value != Vector3.zero) handle2Prop.vector3Value = -handle1Prop.vector3Value;
+ else if(handle2Prop.vector3Value != Vector3.zero) handle1Prop.vector3Value = -handle2Prop.vector3Value;
+ else
+ {
+ handle1Prop.vector3Value = new Vector3(0.1f, 0, 0);
+ handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0);
+ }
+ }
+
+ else if(newType == 1)
+ {
+ if(handle1Prop.vector3Value == Vector3.zero && handle2Prop.vector3Value == Vector3.zero)
+ {
+ handle1Prop.vector3Value = new Vector3(0.1f, 0, 0);
+ handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0);
+ }
+ }
+
+ else if(newType == 2)
+ {
+ handle1Prop.vector3Value = Vector3.zero;
+ handle2Prop.vector3Value = Vector3.zero;
+ }
+ }
+
+ Vector3 newPointPos = EditorGUILayout.Vector3Field("Position : ", point.transform.localPosition);
+ if(newPointPos != point.transform.localPosition)
+ {
+ Undo.RegisterUndo(point.transform, "Move Bezier Point");
+ point.transform.localPosition = newPointPos;
+ }
+
+ if(handleStyleProp.enumValueIndex == 0)
+ {
+ Vector3 newPosition;
+
+ newPosition = EditorGUILayout.Vector3Field("Handle 1", handle1Prop.vector3Value);
+ if(newPosition != handle1Prop.vector3Value)
+ {
+ handle1Prop.vector3Value = newPosition;
+ handle2Prop.vector3Value = -newPosition;
+ }
+
+ newPosition = EditorGUILayout.Vector3Field("Handle 2", handle2Prop.vector3Value);
+ if(newPosition != handle2Prop.vector3Value)
+ {
+ handle1Prop.vector3Value = -newPosition;
+ handle2Prop.vector3Value = newPosition;
+ }
+ }
+
+ else if(handleStyleProp.enumValueIndex == 1)
+ {
+ EditorGUILayout.PropertyField(handle1Prop);
+ EditorGUILayout.PropertyField(handle2Prop);
+ }
+
+ EditorGUI.indentLevel--;
+ EditorGUI.indentLevel--;
+
+ if(GUI.changed)
+ {
+ serObj.ApplyModifiedProperties();
+ EditorUtility.SetDirty(serObj.targetObject);
+ }
+ }
+
+ static void DrawPointSceneGUI(BezierPoint point)
+ {
+ Handles.Label(point.position + new Vector3(0, HandleUtility.GetHandleSize(point.position) * 0.4f, 0), point.gameObject.name);
+
+ Handles.color = Color.green;
+ Vector3 newPosition = Handles.FreeMoveHandle(point.position, point.transform.rotation, HandleUtility.GetHandleSize(point.position)*0.1f, Vector3.zero, Handles.RectangleCap);
+
+ if(newPosition != point.position)
+ {
+ Undo.RegisterUndo(point.transform, "Move Point");
+ point.transform.position = newPosition;
+ }
+
+ if(point.handleStyle != BezierPoint.HandleStyle.None)
+ {
+ Handles.color = Color.cyan;
+ Vector3 newGlobal1 = Handles.FreeMoveHandle(point.globalHandle1, point.transform.rotation, HandleUtility.GetHandleSize(point.globalHandle1)*0.075f, Vector3.zero, Handles.CircleCap);
+ if(point.globalHandle1 != newGlobal1)
+ {
+ Undo.RegisterUndo(point, "Move Handle");
+ point.globalHandle1 = newGlobal1;
+ if(point.handleStyle == BezierPoint.HandleStyle.Connected) point.globalHandle2 = -(newGlobal1 - point.position) + point.position;
+ }
+
+ Vector3 newGlobal2 = Handles.FreeMoveHandle(point.globalHandle2, point.transform.rotation, HandleUtility.GetHandleSize(point.globalHandle2)*0.075f, Vector3.zero, Handles.CircleCap);
+ if(point.globalHandle2 != newGlobal2)
+ {
+ Undo.RegisterUndo(point, "Move Handle");
+ point.globalHandle2 = newGlobal2;
+ if(point.handleStyle == BezierPoint.HandleStyle.Connected) point.globalHandle1 = -(newGlobal2 - point.position) + point.position;
+ }
+
+ Handles.color = Color.yellow;
+ Handles.DrawLine(point.position, point.globalHandle1);
+ Handles.DrawLine(point.position, point.globalHandle2);
+ }
+ }
+
+ public static void DrawOtherPoints(BezierCurve curve, BezierPoint caller)
+ {
+ foreach(BezierPoint p in curve.GetAnchorPoints())
+ {
+ if(p != caller) DrawPointSceneGUI(p);
+ }
+ }
+
+ [MenuItem("GameObject/Create Other/Bezier Curve")]
+ public static void CreateCurve(MenuCommand command)
+ {
+ GameObject curveObject = new GameObject("BezierCurve");
+ Undo.RegisterUndo(curveObject, "Undo Create Curve");
+ BezierCurve curve = curveObject.AddComponent<BezierCurve>();
+
+ BezierPoint p1 = curve.AddPointAt(Vector3.forward * 0.5f);
+ p1.handleStyle = BezierPoint.HandleStyle.Connected;
+ p1.handle1 = new Vector3(-0.28f, 0, 0);
+
+ BezierPoint p2 = curve.AddPointAt(Vector3.right * 0.5f);
+ p2.handleStyle = BezierPoint.HandleStyle.Connected;
+ p2.handle1 = new Vector3(0, 0, 0.28f);
+
+ BezierPoint p3 = curve.AddPointAt(-Vector3.forward * 0.5f);
+ p3.handleStyle = BezierPoint.HandleStyle.Connected;
+ p3.handle1 = new Vector3(0.28f, 0, 0);
+
+ BezierPoint p4 = curve.AddPointAt(-Vector3.right * 0.5f);
+ p4.handleStyle = BezierPoint.HandleStyle.Connected;
+ p4.handle1 = new Vector3(0, 0, -0.28f);
+
+ curve.close = true;
+ }
+}
diff --git a/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs.meta b/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs.meta
new file mode 100644
index 00000000..0fbf9ed6
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 076c82ebe1ea6b249b4e66e85cdf269a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs b/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs
new file mode 100644
index 00000000..ce0962a7
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs
@@ -0,0 +1,152 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+[CustomEditor(typeof(BezierPoint))]
+[CanEditMultipleObjects]
+public class BezierPointEditor : Editor {
+
+ BezierPoint point;
+
+ SerializedProperty handleTypeProp;
+ SerializedProperty handle1Prop;
+ SerializedProperty handle2Prop;
+
+ private delegate void HandleFunction(BezierPoint p);
+ private HandleFunction[] handlers = new HandleFunction[] { HandleConnected, HandleBroken, HandleAbsent };
+
+ void OnEnable(){
+ point = (BezierPoint)target;
+
+ handleTypeProp = serializedObject.FindProperty("handleStyle");
+ handle1Prop = serializedObject.FindProperty("_handle1");
+ handle2Prop = serializedObject.FindProperty("_handle2");
+ }
+
+ public override void OnInspectorGUI (){
+
+ serializedObject.Update();
+
+ BezierPoint.HandleStyle newHandleType = (BezierPoint.HandleStyle)EditorGUILayout.EnumPopup("Handle Type", (BezierPoint.HandleStyle)handleTypeProp.intValue);
+
+ if(newHandleType != (BezierPoint.HandleStyle)handleTypeProp.intValue)
+ {
+ handleTypeProp.intValue = (int)newHandleType;
+
+ if((int)newHandleType == 0)
+ {
+ if(handle1Prop.vector3Value != Vector3.zero) handle2Prop.vector3Value = -handle1Prop.vector3Value;
+ else if(handle2Prop.vector3Value != Vector3.zero) handle1Prop.vector3Value = -handle2Prop.vector3Value;
+ else
+ {
+ handle1Prop.vector3Value = new Vector3(0.1f, 0, 0);
+ handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0);
+ }
+ }
+
+ else if((int)newHandleType == 1)
+ {
+ if(handle1Prop.vector3Value == Vector3.zero && handle2Prop.vector3Value == Vector3.zero)
+ {
+ handle1Prop.vector3Value = new Vector3(0.1f, 0, 0);
+ handle2Prop.vector3Value = new Vector3(-0.1f, 0, 0);
+ }
+ }
+
+ else if((int)newHandleType == 2)
+ {
+ handle1Prop.vector3Value = Vector3.zero;
+ handle2Prop.vector3Value = Vector3.zero;
+ }
+ }
+
+ if(handleTypeProp.intValue != 2)
+ {
+ Vector3 newHandle1 = EditorGUILayout.Vector3Field("Handle 1", handle1Prop.vector3Value);
+ Vector3 newHandle2 = EditorGUILayout.Vector3Field("Handle 2", handle2Prop.vector3Value);
+
+ if(handleTypeProp.intValue == 0){
+ if(newHandle1 != handle1Prop.vector3Value){
+ handle1Prop.vector3Value = newHandle1;
+ handle2Prop.vector3Value = -newHandle1;
+ }
+
+ else if(newHandle2 != handle2Prop.vector3Value){
+ handle1Prop.vector3Value = -newHandle2;
+ handle2Prop.vector3Value = newHandle2;
+ }
+ }
+
+ else{
+ handle1Prop.vector3Value = newHandle1;
+ handle2Prop.vector3Value = newHandle2;
+ }
+ }
+
+ if(GUI.changed){
+ serializedObject.ApplyModifiedProperties();
+ EditorUtility.SetDirty(target);
+ }
+ }
+
+ void OnSceneGUI()
+ {
+
+ Handles.color = Color.green;
+ Vector3 newPosition = Handles.FreeMoveHandle(point.position, point.transform.rotation, HandleUtility.GetHandleSize(point.position)*0.2f, Vector3.zero, Handles.CubeCap);
+ if(point.position != newPosition) point.position = newPosition;
+
+ handlers[(int)point.handleStyle](point);
+
+ Handles.color = Color.yellow;
+ Handles.DrawLine(point.position, point.globalHandle1);
+ Handles.DrawLine(point.position, point.globalHandle2);
+
+ BezierCurveEditor.DrawOtherPoints(point.curve, point);
+ }
+
+ private static void HandleConnected(BezierPoint p){
+ Handles.color = Color.cyan;
+
+ Vector3 newGlobal1 = Handles.FreeMoveHandle(p.globalHandle1, p.transform.rotation, HandleUtility.GetHandleSize(p.globalHandle1)*0.15f, Vector3.zero, Handles.SphereCap);
+
+ if(newGlobal1 != p.globalHandle1){
+ Undo.RegisterUndo(p, "Move Handle");
+ p.globalHandle1 = newGlobal1;
+ p.globalHandle2 = -(newGlobal1 - p.position) + p.position;
+ }
+
+ Vector3 newGlobal2 = Handles.FreeMoveHandle(p.globalHandle2, p.transform.rotation, HandleUtility.GetHandleSize(p.globalHandle2)*0.15f, Vector3.zero, Handles.SphereCap);
+
+ if(newGlobal2 != p.globalHandle2){
+ Undo.RegisterUndo(p, "Move Handle");
+ p.globalHandle1 = -(newGlobal2 - p.position) + p.position;
+ p.globalHandle2 = newGlobal2;
+ }
+ }
+
+ private static void HandleBroken(BezierPoint p){
+ Handles.color = Color.cyan;
+
+ Vector3 newGlobal1 = Handles.FreeMoveHandle(p.globalHandle1, Quaternion.identity, HandleUtility.GetHandleSize(p.globalHandle1)*0.15f, Vector3.zero, Handles.SphereCap);
+ Vector3 newGlobal2 = Handles.FreeMoveHandle(p.globalHandle2, Quaternion.identity, HandleUtility.GetHandleSize(p.globalHandle2)*0.15f, Vector3.zero, Handles.SphereCap);
+
+ if(newGlobal1 != p.globalHandle1)
+ {
+ Undo.RegisterUndo(p, "Move Handle");
+ p.globalHandle1 = newGlobal1;
+ }
+
+ if(newGlobal2 != p.globalHandle2)
+ {
+ Undo.RegisterUndo(p, "Move Handle");
+ p.globalHandle2 = newGlobal2;
+ }
+ }
+
+ private static void HandleAbsent(BezierPoint p)
+ {
+ p.handle1 = Vector3.zero;
+ p.handle2 = Vector3.zero;
+ }
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs.meta b/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs.meta
new file mode 100644
index 00000000..1297f70d
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f40a14ecad007949831de4081a5a58e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Example.unity b/Assets/ThirdParty/BezierCurves/Example.unity
new file mode 100644
index 00000000..bb26a079
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Example.unity
@@ -0,0 +1,2693 @@
+%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.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 3
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &4
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ 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: 10
+ m_Resolution: 1
+ m_BakeResolution: 50
+ m_AtlasSize: 1024
+ m_AO: 1
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 0
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 1
+ m_BakeBackend: 0
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 500
+ m_PVRBounces: 2
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVRFilteringMode: 0
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ShowResolutionOverlay: 1
+ m_LightingDataAsset: {fileID: 0}
+ m_UseShadowmask: 0
+--- !u!196 &5
+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.16666666
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &36764205
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 36764207}
+ - component: {fileID: 36764206}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &36764206
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 36764205}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1198546087}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &36764207
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 36764205}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1198546088}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &67609896
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 67609898}
+ - component: {fileID: 67609897}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &67609897
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 67609896}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2017356541}
+ handleStyle: 0
+ _handle1: {x: 0.078281164, y: -0.40612793, z: -0.58732814}
+ _handle2: {x: -0.078281164, y: 0.40612793, z: 0.58732814}
+--- !u!4 &67609898
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 67609896}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.043979406, y: 0.27056885, z: 0.08637792}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2017356542}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &69914966
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 69914968}
+ - component: {fileID: 69914967}
+ m_Layer: 0
+ m_Name: Z-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &69914967
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 69914966}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 0, g: 0, b: 1, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1262600492}
+ - {fileID: 1162555141}
+ - {fileID: 260016904}
+ - {fileID: 783582148}
+--- !u!4 &69914968
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 69914966}
+ m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1262600493}
+ - {fileID: 1162555142}
+ - {fileID: 260016905}
+ - {fileID: 783582149}
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &129569344
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 129569346}
+ - component: {fileID: 129569345}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &129569345
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 129569344}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 761205515}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &129569346
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 129569344}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 761205516}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &181667771
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 181667773}
+ - component: {fileID: 181667772}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &181667772
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 181667771}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 815191108}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &181667773
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 181667771}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 815191109}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &192447618
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 192447620}
+ - component: {fileID: 192447619}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &192447619
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 192447618}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1332418294}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &192447620
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 192447618}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332418295}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &260016903
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 260016905}
+ - component: {fileID: 260016904}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &260016904
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 260016903}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 69914967}
+ handleStyle: 0
+ _handle1: {x: 0.35839844, y: -0.94238305, z: -0.10205072}
+ _handle2: {x: -0.35839844, y: 0.94238305, z: 0.10205072}
+--- !u!4 &260016905
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 260016903}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 69914968}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &334156899
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 334156901}
+ - component: {fileID: 334156900}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &334156900
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 334156899}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1332418294}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &334156901
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 334156899}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332418295}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &523446342
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 523446344}
+ - component: {fileID: 523446343}
+ m_Layer: 0
+ m_Name: ZX1-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &523446343
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 523446342}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 0, b: 1, a: 1}
+ _close: 1
+ points:
+ - {fileID: 668875043}
+ - {fileID: 2086010706}
+ - {fileID: 1890894075}
+ - {fileID: 975837447}
+--- !u!4 &523446344
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 523446342}
+ m_LocalRotation: {x: 0.6532815, y: 0.27059802, z: -0.27059802, w: 0.6532815}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 668875044}
+ - {fileID: 2086010707}
+ - {fileID: 1890894076}
+ - {fileID: 975837448}
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &558518910
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 558518912}
+ - component: {fileID: 558518911}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &558518911
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 558518910}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1332418294}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &558518912
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 558518910}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332418295}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &668875042
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 668875044}
+ - component: {fileID: 668875043}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &668875043
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 668875042}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 523446343}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &668875044
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 668875042}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 523446344}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &761205514
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 761205516}
+ - component: {fileID: 761205515}
+ m_Layer: 0
+ m_Name: XY1-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &761205515
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 761205514}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 1, b: 0, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1648047648}
+ - {fileID: 129569345}
+ - {fileID: 1738010685}
+ - {fileID: 1591853609}
+--- !u!4 &761205516
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 761205514}
+ m_LocalRotation: {x: 0, y: 0, z: 0.3826835, w: 0.92387956}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1648047649}
+ - {fileID: 129569346}
+ - {fileID: 1738010686}
+ - {fileID: 1591853610}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &783582147
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 783582149}
+ - component: {fileID: 783582148}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &783582148
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783582147}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 69914967}
+ handleStyle: 0
+ _handle1: {x: -0.19250488, y: 0.048828118, z: -0.16259769}
+ _handle2: {x: 0.19250488, y: -0.048828118, z: 0.16259769}
+--- !u!4 &783582149
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 783582147}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 69914968}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &815191107
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 815191109}
+ - component: {fileID: 815191108}
+ m_Layer: 0
+ m_Name: X-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &815191108
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 815191107}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 0, b: 0, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1540197579}
+ - {fileID: 892934128}
+ - {fileID: 181667772}
+ - {fileID: 2086514518}
+--- !u!4 &815191109
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 815191107}
+ m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1540197580}
+ - {fileID: 892934129}
+ - {fileID: 181667773}
+ - {fileID: 2086514519}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &827773637
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 827773639}
+ - component: {fileID: 827773638}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &827773638
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 827773637}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1198546087}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &827773639
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 827773637}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1198546088}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &869165256
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 869165258}
+ - component: {fileID: 869165257}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &869165257
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 869165256}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1332418294}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &869165258
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 869165256}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1332418295}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &892934127
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 892934129}
+ - component: {fileID: 892934128}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &892934128
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 892934127}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 815191108}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &892934129
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 892934127}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 815191109}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &975837446
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 975837448}
+ - component: {fileID: 975837447}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &975837447
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 975837446}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 523446343}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &975837448
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 975837446}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 523446344}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1004522334
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1004522336}
+ - component: {fileID: 1004522335}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1004522335
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1004522334}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1650725735}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &1004522336
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1004522334}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1650725736}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1030562940
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1030562942}
+ - component: {fileID: 1030562941}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1030562941
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1030562940}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1650725735}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &1030562942
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1030562940}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1650725736}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1070382272
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1070382274}
+ - component: {fileID: 1070382273}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1070382273
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070382272}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1627586239}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &1070382274
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1070382272}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1627586240}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1162555140
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1162555142}
+ - component: {fileID: 1162555141}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1162555141
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1162555140}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 69914967}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &1162555142
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1162555140}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 69914968}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1196405784
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1196405786}
+ - component: {fileID: 1196405785}
+ m_Layer: 0
+ m_Name: Point 4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1196405785
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196405784}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2017356541}
+ handleStyle: 0
+ _handle1: {x: 0.1, y: 0, z: 0}
+ _handle2: {x: -0.1, y: -0, z: -0}
+--- !u!4 &1196405786
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1196405784}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.896, y: 0.435, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2017356542}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1198546086
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1198546088}
+ - component: {fileID: 1198546087}
+ m_Layer: 0
+ m_Name: XY2-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1198546087
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1198546086}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 1, b: 0, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1767861211}
+ - {fileID: 1801748448}
+ - {fileID: 827773638}
+ - {fileID: 36764206}
+--- !u!4 &1198546088
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1198546086}
+ m_LocalRotation: {x: 0, y: 0, z: 0.92387956, w: 0.38268346}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1767861212}
+ - {fileID: 1801748449}
+ - {fileID: 827773639}
+ - {fileID: 36764207}
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1218221641
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1218221643}
+ - component: {fileID: 1218221642}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1218221642
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1218221641}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2106407514}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &1218221643
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1218221641}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2106407515}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1258031003
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1258031005}
+ - component: {fileID: 1258031004}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1258031004
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1258031003}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2017356541}
+ handleStyle: 0
+ _handle1: {x: -0.21437311, y: 0.19450781, z: -0.43680984}
+ _handle2: {x: 0.21437311, y: -0.19450781, z: 0.43680984}
+--- !u!4 &1258031005
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1258031003}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.658, y: 0.179, z: -0.19}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2017356542}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1262600491
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1262600493}
+ - component: {fileID: 1262600492}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1262600492
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1262600491}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 69914967}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1262600493
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1262600491}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 69914968}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1332418293
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1332418295}
+ - component: {fileID: 1332418294}
+ m_Layer: 0
+ m_Name: ZX2-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1332418294
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332418293}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 0, b: 1, a: 1}
+ _close: 1
+ points:
+ - {fileID: 192447619}
+ - {fileID: 334156900}
+ - {fileID: 558518911}
+ - {fileID: 869165257}
+--- !u!4 &1332418295
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1332418293}
+ m_LocalRotation: {x: 0.6532815, y: -0.27059805, z: 0.27059805, w: 0.6532815}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 192447620}
+ - {fileID: 334156901}
+ - {fileID: 558518912}
+ - {fileID: 869165258}
+ m_Father: {fileID: 0}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1418373485
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1418373487}
+ - component: {fileID: 1418373486}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1418373486
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1418373485}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2106407514}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &1418373487
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1418373485}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2106407515}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1459647687
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1459647689}
+ - component: {fileID: 1459647688}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1459647688
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1459647687}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2106407514}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &1459647689
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1459647687}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2106407515}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1495983996
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1495984001}
+ - component: {fileID: 1495984000}
+ - component: {fileID: 1495983999}
+ - component: {fileID: 1495983998}
+ - component: {fileID: 1495983997}
+ 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 &1495983997
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1495983996}
+ m_Enabled: 1
+--- !u!124 &1495983998
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1495983996}
+ m_Enabled: 1
+--- !u!92 &1495983999
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1495983996}
+ m_Enabled: 1
+--- !u!20 &1495984000
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1495983996}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
+ m_projectionMatrixMode: 1
+ m_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_GateFitMode: 2
+ 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: 100
+ 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: 0
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1495984001
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1495983996}
+ m_LocalRotation: {x: 0.3535534, y: 0.3535534, z: -0.14644663, w: 0.85355335}
+ m_LocalPosition: {x: -2.3157544, y: 3.2749717, z: -2.315754}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1540197578
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1540197580}
+ - component: {fileID: 1540197579}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1540197579
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1540197578}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 815191108}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1540197580
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1540197578}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 815191109}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1546760151
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1546760153}
+ - component: {fileID: 1546760152}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1546760152
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1546760151}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2106407514}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1546760153
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1546760151}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2106407515}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1591853608
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1591853610}
+ - component: {fileID: 1591853609}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1591853609
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1591853608}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 761205515}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &1591853610
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1591853608}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 761205516}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1627586238
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1627586240}
+ - component: {fileID: 1627586239}
+ m_Layer: 0
+ m_Name: YZ2-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1627586239
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1627586238}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 0, g: 1, b: 1, a: 1}
+ _close: 1
+ points:
+ - {fileID: 2036469857}
+ - {fileID: 1845494029}
+ - {fileID: 1970297595}
+ - {fileID: 1070382273}
+--- !u!4 &1627586240
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1627586238}
+ m_LocalRotation: {x: 0.92387956, y: 0, z: 0, w: 0.38268346}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 2036469858}
+ - {fileID: 1845494030}
+ - {fileID: 1970297596}
+ - {fileID: 1070382274}
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1648047647
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1648047649}
+ - component: {fileID: 1648047648}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1648047648
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648047647}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 761205515}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1648047649
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1648047647}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 761205516}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1650725734
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1650725736}
+ - component: {fileID: 1650725735}
+ m_Layer: 0
+ m_Name: YZ1-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1650725735
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1650725734}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 0, g: 1, b: 1, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1807223580}
+ - {fileID: 1956839313}
+ - {fileID: 1030562941}
+ - {fileID: 1004522335}
+--- !u!4 &1650725736
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1650725734}
+ m_LocalRotation: {x: 0.3826835, y: 0, z: 0, w: 0.92387956}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1807223581}
+ - {fileID: 1956839314}
+ - {fileID: 1030562942}
+ - {fileID: 1004522336}
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1738010684
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1738010686}
+ - component: {fileID: 1738010685}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1738010685
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1738010684}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 761205515}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &1738010686
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1738010684}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 761205516}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1767861210
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1767861212}
+ - component: {fileID: 1767861211}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1767861211
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1767861210}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1198546087}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1767861212
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1767861210}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1198546088}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1801748447
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1801748449}
+ - component: {fileID: 1801748448}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1801748448
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1801748447}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1198546087}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &1801748449
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1801748447}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1198546088}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1807223579
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1807223581}
+ - component: {fileID: 1807223580}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1807223580
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1807223579}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1650725735}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &1807223581
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1807223579}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1650725736}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1845494028
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1845494030}
+ - component: {fileID: 1845494029}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1845494029
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1845494028}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1627586239}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &1845494030
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1845494028}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1627586240}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1872456974
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1872456976}
+ - component: {fileID: 1872456975}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1872456975
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1872456974}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2017356541}
+ handleStyle: 0
+ _handle1: {x: -0.27394444, y: 0.5940938, z: 0.13396966}
+ _handle2: {x: 0.27394444, y: -0.5940938, z: -0.13396966}
+--- !u!4 &1872456976
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1872456974}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -1.25, y: 0.362, z: -0.37}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2017356542}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1890894074
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1890894076}
+ - component: {fileID: 1890894075}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1890894075
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1890894074}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 523446343}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &1890894076
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1890894074}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 523446344}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1936829849
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1936829851}
+ - component: {fileID: 1936829850}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1936829850
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1936829849}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 2017356541}
+ handleStyle: 0
+ _handle1: {x: -0.18388975, y: -0.06713867, z: 0.5412119}
+ _handle2: {x: 0.18388975, y: 0.06713867, z: -0.5412119}
+--- !u!4 &1936829851
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1936829849}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.6499903, y: 0.38098145, z: 0.056958973}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 2017356542}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1956839312
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1956839314}
+ - component: {fileID: 1956839313}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1956839313
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1956839312}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1650725735}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &1956839314
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1956839312}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1650725736}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1970297594
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1970297596}
+ - component: {fileID: 1970297595}
+ m_Layer: 0
+ m_Name: Point 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1970297595
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1970297594}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1627586239}
+ handleStyle: 0
+ _handle1: {x: 0.28, y: 0, z: 0}
+ _handle2: {x: -0.28, y: -0, z: -0}
+--- !u!4 &1970297596
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1970297594}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0, y: -0, z: -0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1627586240}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2017356540
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2017356542}
+ - component: {fileID: 2017356541}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2017356541
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2017356540}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 1, g: 1, b: 1, a: 1}
+ _close: 0
+ points:
+ - {fileID: 1872456975}
+ - {fileID: 1936829850}
+ - {fileID: 67609897}
+ - {fileID: 1258031004}
+ - {fileID: 1196405785}
+--- !u!4 &2017356542
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2017356540}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 1.935, y: 0.12, z: 0.627}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1872456976}
+ - {fileID: 1936829851}
+ - {fileID: 67609898}
+ - {fileID: 1258031005}
+ - {fileID: 1196405786}
+ m_Father: {fileID: 0}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2036469856
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2036469858}
+ - component: {fileID: 2036469857}
+ m_Layer: 0
+ m_Name: Point 0
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2036469857
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2036469856}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 1627586239}
+ handleStyle: 0
+ _handle1: {x: -0.28, y: 0, z: 0}
+ _handle2: {x: 0.28, y: -0, z: -0}
+--- !u!4 &2036469858
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2036469856}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0.5}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1627586240}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2086010705
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2086010707}
+ - component: {fileID: 2086010706}
+ m_Layer: 0
+ m_Name: Point 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2086010706
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2086010705}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 523446343}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: 0.28}
+ _handle2: {x: -0, y: -0, z: -0.28}
+--- !u!4 &2086010707
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2086010705}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0.5, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 523446344}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2086514517
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2086514519}
+ - component: {fileID: 2086514518}
+ m_Layer: 0
+ m_Name: Point 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2086514518
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2086514517}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 1dff893e341592e438963ea8cbceb377, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ _curve: {fileID: 815191108}
+ handleStyle: 0
+ _handle1: {x: 0, y: 0, z: -0.28}
+ _handle2: {x: -0, y: -0, z: 0.28}
+--- !u!4 &2086514519
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2086514517}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -0.5, y: -0, z: -0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 815191109}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2106407513
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2106407515}
+ - component: {fileID: 2106407514}
+ m_Layer: 0
+ m_Name: Y-Ring
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &2106407514
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2106407513}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4234cd2c43978e041bbe9323c195c4bd, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ resolution: 30
+ drawColor: {r: 0, g: 1, b: 0.118881226, a: 1}
+ _close: 1
+ points:
+ - {fileID: 1546760152}
+ - {fileID: 1418373486}
+ - {fileID: 1459647688}
+ - {fileID: 1218221642}
+--- !u!4 &2106407515
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2106407513}
+ 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_Children:
+ - {fileID: 1546760153}
+ - {fileID: 1418373487}
+ - {fileID: 1459647689}
+ - {fileID: 1218221643}
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/Assets/ThirdParty/BezierCurves/Example.unity.meta b/Assets/ThirdParty/BezierCurves/Example.unity.meta
new file mode 100644
index 00000000..c8d91d5b
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Example.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3b3fe768c68c21647b45cad53f1d7c06
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Scripts.meta b/Assets/ThirdParty/BezierCurves/Scripts.meta
new file mode 100644
index 00000000..4ccc7c2e
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7e00e96047c254f4d849d6180726e068
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs b/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs
new file mode 100644
index 00000000..6e28fa14
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs
@@ -0,0 +1,557 @@
+#region UsingStatements
+
+using UnityEngine;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+#endregion
+
+/// <summary>
+/// - Class for describing and drawing Bezier Curves
+/// - Efficiently handles approximate length calculation through 'dirty' system
+/// - Has static functions for getting points on curves constructed by Vector3 parameters (GetPoint, GetCubicPoint, GetQuadraticPoint, and GetLinearPoint)
+/// </summary>
+[ExecuteInEditMode]
+[Serializable]
+public class BezierCurve : MonoBehaviour {
+
+ #region PublicVariables
+
+ /// <summary>
+ /// - the number of mid-points calculated for each pair of bezier points
+ /// - used for drawing the curve in the editor
+ /// - used for calculating the "length" variable
+ /// </summary>
+ public int resolution = 30;
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this <see cref="BezierCurve"/> is dirty.
+ /// </summary>
+ /// <value>
+ /// <c>true</c> if dirty; otherwise, <c>false</c>.
+ /// </value>
+ public bool dirty { get; private set; }
+
+ /// <summary>
+ /// - color this curve will be drawn with in the editor
+ /// - set in the editor
+ /// </summary>
+ public Color drawColor = Color.white;
+
+ #endregion
+
+ #region PublicProperties
+
+ /// <summary>
+ /// - set in the editor
+ /// - used to determine if the curve should be drawn as "closed" in the editor
+ /// - used to determine if the curve's length should include the curve between the first and the last points in "points" array
+ /// - setting this value will cause the curve to become dirty
+ /// </summary>
+ [SerializeField] private bool _close;
+ public bool close
+ {
+ get { return _close; }
+ set
+ {
+ if(_close == value) return;
+ _close = value;
+ dirty = true;
+ }
+ }
+
+ /// <summary>
+ /// - set internally
+ /// - gets point corresponding to "index" in "points" array
+ /// - does not allow direct set
+ /// </summary>
+ /// <param name='index'>
+ /// - the index
+ /// </param>
+ public BezierPoint this[int index]
+ {
+ get { return points[index]; }
+ }
+
+ /// <summary>
+ /// - number of points stored in 'points' variable
+ /// - set internally
+ /// - does not include "handles"
+ /// </summary>
+ /// <value>
+ /// - The point count
+ /// </value>
+ public int pointCount
+ {
+ get { return points.Length; }
+ }
+
+ /// <summary>
+ /// - The approximate length of the curve
+ /// - recalculates if the curve is "dirty"
+ /// </summary>
+ private float _length;
+ public float length
+ {
+ get
+ {
+ if(dirty)
+ {
+ _length = 0;
+ for(int i = 0; i < points.Length - 1; i++){
+ _length += ApproximateLength(points[i], points[i + 1], resolution);
+ }
+
+ if(close) _length += ApproximateLength(points[points.Length - 1], points[0], resolution);
+
+ dirty = false;
+ }
+
+ return _length;
+ }
+ }
+
+ #endregion
+
+ #region PrivateVariables
+
+ /// <summary>
+ /// - Array of point objects that make up this curve
+ /// - Populated through editor
+ /// </summary>
+ [SerializeField] private BezierPoint[] points = new BezierPoint[0];
+
+ #endregion
+
+ #region UnityFunctions
+
+ void OnDrawGizmos () {
+ Gizmos.color = drawColor;
+
+ if(points.Length > 1){
+ for(int i = 0; i < points.Length - 1; i++){
+ DrawCurve(points[i], points[i+1], resolution);
+ }
+
+ if (close) DrawCurve(points[points.Length - 1], points[0], resolution);
+ }
+ }
+
+ void Awake(){
+ dirty = true;
+ }
+
+ #endregion
+
+ #region PublicFunctions
+
+ /// <summary>
+ /// - Adds the given point to the end of the curve ("points" array)
+ /// </summary>
+ /// <param name='point'>
+ /// - The point to add.
+ /// </param>
+ public void AddPoint(BezierPoint point)
+ {
+ List<BezierPoint> tempArray = new List<BezierPoint>(points);
+ tempArray.Add(point);
+ points = tempArray.ToArray();
+ dirty = true;
+ }
+
+ /// <summary>
+ /// - Adds a point at position
+ /// </summary>
+ /// <returns>
+ /// - The point object
+ /// </returns>
+ /// <param name='position'>
+ /// - Where to add the point
+ /// </param>
+ public BezierPoint AddPointAt(Vector3 position)
+ {
+ GameObject pointObject = new GameObject("Point "+pointCount);
+
+ pointObject.transform.parent = transform;
+ pointObject.transform.position = position;
+
+ BezierPoint newPoint = pointObject.AddComponent<BezierPoint>();
+ newPoint.curve = this;
+
+ return newPoint;
+ }
+
+ /// <summary>
+ /// - Removes the given point from the curve ("points" array)
+ /// </summary>
+ /// <param name='point'>
+ /// - The point to remove
+ /// </param>
+ public void RemovePoint(BezierPoint point)
+ {
+ List<BezierPoint> tempArray = new List<BezierPoint>(points);
+ tempArray.Remove(point);
+ points = tempArray.ToArray();
+ dirty = false;
+ }
+
+ /// <summary>
+ /// - Gets a copy of the bezier point array used to define this curve
+ /// </summary>
+ /// <returns>
+ /// - The cloned array of points
+ /// </returns>
+ public BezierPoint[] GetAnchorPoints()
+ {
+ return (BezierPoint[])points.Clone();
+ }
+
+ /// <summary>
+ /// - Gets the point at 't' percent along this curve
+ /// </summary>
+ /// <returns>
+ /// - Returns the point at 't' percent
+ /// </returns>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the curve (0 = 0%, 1 = 100%)
+ /// </param>
+ public Vector3 GetPointAt(float t)
+ {
+ if(t <= 0) return points[0].position;
+ else if (t >= 1) return points[points.Length - 1].position;
+
+ float totalPercent = 0;
+ float curvePercent = 0;
+
+ BezierPoint p1 = null;
+ BezierPoint p2 = null;
+
+ for(int i = 0; i < points.Length - 1; i++)
+ {
+ curvePercent = ApproximateLength(points[i], points[i + 1], 10) / length;
+ if(totalPercent + curvePercent > t)
+ {
+ p1 = points[i];
+ p2 = points[i + 1];
+ break;
+ }
+
+ else totalPercent += curvePercent;
+ }
+
+ if(close && p1 == null)
+ {
+ p1 = points[points.Length - 1];
+ p2 = points[0];
+ }
+
+ t -= totalPercent;
+
+ return GetPoint(p1, p2, t / curvePercent);
+ }
+
+ /// <summary>
+ /// - Get the index of the given point in this curve
+ /// </summary>
+ /// <returns>
+ /// - The index, or -1 if the point is not found
+ /// </returns>
+ /// <param name='point'>
+ /// - Point to search for
+ /// </param>
+ public int GetPointIndex(BezierPoint point)
+ {
+ int result = -1;
+ for(int i = 0; i < points.Length; i++)
+ {
+ if(points[i] == point)
+ {
+ result = i;
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ /// <summary>
+ /// - Sets this curve to 'dirty'
+ /// - Forces the curve to recalculate its length
+ /// </summary>
+ public void SetDirty()
+ {
+ dirty = true;
+ }
+
+ #endregion
+
+ #region PublicStaticFunctions
+
+ /// <summary>
+ /// - Draws the curve in the Editor
+ /// </summary>
+ /// <param name='p1'>
+ /// - The bezier point at the beginning of the curve
+ /// </param>
+ /// <param name='p2'>
+ /// - The bezier point at the end of the curve
+ /// </param>
+ /// <param name='resolution'>
+ /// - The number of segments along the curve to draw
+ /// </param>
+ public static void DrawCurve(BezierPoint p1, BezierPoint p2, int resolution)
+ {
+ int limit = resolution+1;
+ float _res = resolution;
+ Vector3 lastPoint = p1.position;
+ Vector3 currentPoint = Vector3.zero;
+
+ for(int i = 1; i < limit; i++){
+ currentPoint = GetPoint(p1, p2, i/_res);
+ Gizmos.DrawLine(lastPoint, currentPoint);
+ lastPoint = currentPoint;
+ }
+ }
+
+ /// <summary>
+ /// - Gets the point 't' percent along a curve
+ /// - Automatically calculates for the number of relevant points
+ /// </summary>
+ /// <returns>
+ /// - The point 't' percent along the curve
+ /// </returns>
+ /// <param name='p1'>
+ /// - The bezier point at the beginning of the curve
+ /// </param>
+ /// <param name='p2'>
+ /// - The bezier point at the end of the curve
+ /// </param>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the curve (0 = 0%, 1 = 100%)
+ /// </param>
+ public static Vector3 GetPoint(BezierPoint p1, BezierPoint p2, float t)
+ {
+ if(p1.handle2 != Vector3.zero)
+ {
+ if(p2.handle1 != Vector3.zero) return GetCubicCurvePoint(p1.position, p1.globalHandle2, p2.globalHandle1, p2.position, t);
+ else return GetQuadraticCurvePoint(p1.position, p1.globalHandle2, p2.position, t);
+ }
+
+ else
+ {
+ if(p2.handle1 != Vector3.zero) return GetQuadraticCurvePoint(p1.position, p2.globalHandle1, p2.position, t);
+ else return GetLinearPoint(p1.position, p2.position, t);
+ }
+ }
+
+ /// <summary>
+ /// - Gets the point 't' percent along a third-order curve
+ /// </summary>
+ /// <returns>
+ /// - The point 't' percent along the curve
+ /// </returns>
+ /// <param name='p1'>
+ /// - The point at the beginning of the curve
+ /// </param>
+ /// <param name='p2'>
+ /// - The second point along the curve
+ /// </param>
+ /// <param name='p3'>
+ /// - The third point along the curve
+ /// </param>
+ /// <param name='p4'>
+ /// - The point at the end of the curve
+ /// </param>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the curve (0 = 0%, 1 = 100%)
+ /// </param>
+ public static Vector3 GetCubicCurvePoint(Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, float t)
+ {
+ t = Mathf.Clamp01(t);
+
+ Vector3 part1 = Mathf.Pow(1 - t, 3) * p1;
+ Vector3 part2 = 3 * Mathf.Pow(1 - t, 2) * t * p2;
+ Vector3 part3 = 3 * (1 - t) * Mathf.Pow(t, 2) * p3;
+ Vector3 part4 = Mathf.Pow(t, 3) * p4;
+
+ return part1 + part2 + part3 + part4;
+ }
+
+ /// <summary>
+ /// - Gets the point 't' percent along a second-order curve
+ /// </summary>
+ /// <returns>
+ /// - The point 't' percent along the curve
+ /// </returns>
+ /// <param name='p1'>
+ /// - The point at the beginning of the curve
+ /// </param>
+ /// <param name='p2'>
+ /// - The second point along the curve
+ /// </param>
+ /// <param name='p3'>
+ /// - The point at the end of the curve
+ /// </param>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the curve (0 = 0%, 1 = 100%)
+ /// </param>
+ public static Vector3 GetQuadraticCurvePoint(Vector3 p1, Vector3 p2, Vector3 p3, float t)
+ {
+ t = Mathf.Clamp01(t);
+
+ Vector3 part1 = Mathf.Pow(1 - t, 2) * p1;
+ Vector3 part2 = 2 * (1 - t) * t * p2;
+ Vector3 part3 = Mathf.Pow(t, 2) * p3;
+
+ return part1 + part2 + part3;
+ }
+
+ /// <summary>
+ /// - Gets point 't' percent along a linear "curve" (line)
+ /// - This is exactly equivalent to Vector3.Lerp
+ /// </summary>
+ /// <returns>
+ /// - The point 't' percent along the curve
+ /// </returns>
+ /// <param name='p1'>
+ /// - The point at the beginning of the line
+ /// </param>
+ /// <param name='p2'>
+ /// - The point at the end of the line
+ /// </param>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the line (0 = 0%, 1 = 100%)
+ /// </param>
+ public static Vector3 GetLinearPoint(Vector3 p1, Vector3 p2, float t)
+ {
+ return p1 + ((p2 - p1) * t);
+ }
+
+ /// <summary>
+ /// - Gets point 't' percent along n-order curve
+ /// </summary>
+ /// <returns>
+ /// - The point 't' percent along the curve
+ /// </returns>
+ /// <param name='t'>
+ /// - Value between 0 and 1 representing the percent along the curve (0 = 0%, 1 = 100%)
+ /// </param>
+ /// <param name='points'>
+ /// - The points used to define the curve
+ /// </param>
+ public static Vector3 GetPoint(float t, params Vector3[] points){
+ t = Mathf.Clamp01(t);
+
+ int order = points.Length-1;
+ Vector3 point = Vector3.zero;
+ Vector3 vectorToAdd;
+
+ for(int i = 0; i < points.Length; i++){
+ vectorToAdd = points[points.Length-i-1] * (BinomialCoefficient(i, order) * Mathf.Pow(t, order-i) * Mathf.Pow((1-t), i));
+ point += vectorToAdd;
+ }
+
+ return point;
+ }
+
+ /// <summary>
+ /// - Approximates the length
+ /// </summary>
+ /// <returns>
+ /// - The approximate length
+ /// </returns>
+ /// <param name='p1'>
+ /// - The bezier point at the start of the curve
+ /// </param>
+ /// <param name='p2'>
+ /// - The bezier point at the end of the curve
+ /// </param>
+ /// <param name='resolution'>
+ /// - The number of points along the curve used to create measurable segments
+ /// </param>
+ public static float ApproximateLength(BezierPoint p1, BezierPoint p2, int resolution = 10)
+ {
+ float _res = resolution;
+ float total = 0;
+ Vector3 lastPosition = p1.position;
+ Vector3 currentPosition;
+
+ for(int i = 0; i < resolution + 1; i++)
+ {
+ currentPosition = GetPoint(p1, p2, i / _res);
+ total += (currentPosition - lastPosition).magnitude;
+ lastPosition = currentPosition;
+ }
+
+ return total;
+ }
+
+ #endregion
+
+ #region UtilityFunctions
+
+ private static int BinomialCoefficient(int i, int n){
+ return Factoral(n)/(Factoral(i)*Factoral(n-i));
+ }
+
+ private static int Factoral(int i){
+ if(i == 0) return 1;
+
+ int total = 1;
+
+ while(i-1 >= 0){
+ total *= i;
+ i--;
+ }
+
+ return total;
+ }
+
+ #endregion
+
+ /* needs testing
+ public Vector3 GetPointAtDistance(float distance)
+ {
+ if(close)
+ {
+ if(distance < 0) while(distance < 0) { distance += length; }
+ else if(distance > length) while(distance > length) { distance -= length; }
+ }
+
+ else
+ {
+ if(distance <= 0) return points[0].position;
+ else if(distance >= length) return points[points.Length - 1].position;
+ }
+
+ float totalLength = 0;
+ float curveLength = 0;
+
+ BezierPoint firstPoint = null;
+ BezierPoint secondPoint = null;
+
+ for(int i = 0; i < points.Length - 1; i++)
+ {
+ curveLength = ApproximateLength(points[i], points[i + 1], resolution);
+ if(totalLength + curveLength >= distance)
+ {
+ firstPoint = points[i];
+ secondPoint = points[i+1];
+ break;
+ }
+ else totalLength += curveLength;
+ }
+
+ if(firstPoint == null)
+ {
+ firstPoint = points[points.Length - 1];
+ secondPoint = points[0];
+ curveLength = ApproximateLength(firstPoint, secondPoint, resolution);
+ }
+
+ distance -= totalLength;
+ return GetPoint(distance / curveLength, firstPoint, secondPoint);
+ }
+ */
+} \ No newline at end of file
diff --git a/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs.meta b/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs.meta
new file mode 100644
index 00000000..df4e5c18
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4234cd2c43978e041bbe9323c195c4bd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs b/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs
new file mode 100644
index 00000000..5abe769d
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs
@@ -0,0 +1,170 @@
+#region UsingStatements
+
+using UnityEngine;
+using System;
+using System.Collections;
+
+#endregion
+
+/// <summary>
+/// - Helper class for storing and manipulating Bezier Point data
+/// - Ensures that handles are in correct relation to one another
+/// - Handles adding/removing self from curve point lists
+/// - Calls SetDirty() on curve when edited
+/// </summary>
+[Serializable]
+public class BezierPoint : MonoBehaviour{
+
+ #region PublicEnumerations
+
+ /// <summary>
+ /// - Enumeration describing the relationship between a point's handles
+ /// - Connected : The point's handles are mirrored across the point
+ /// - Broken : Each handle moves independently of the other
+ /// - None : This point has no handles (both handles are located ON the point)
+ /// </summary>
+ public enum HandleStyle
+ {
+ Connected,
+ Broken,
+ None,
+ }
+
+ #endregion
+
+ #region PublicProperties
+
+ /// <summary>
+ /// - Curve this point belongs to
+ /// - Changing this value will automatically remove this point from the current curve and add it to the new one
+ /// </summary>
+ [SerializeField]
+ private BezierCurve _curve;
+ public BezierCurve curve
+ {
+ get{return _curve;}
+ set
+ {
+ if(_curve) _curve.RemovePoint(this);
+ _curve = value;
+ _curve.AddPoint(this);
+ }
+ }
+
+ /// <summary>
+ /// - Value describing the relationship between this point's handles
+ /// </summary>
+ public HandleStyle handleStyle;
+
+ /// <summary>
+ /// - Shortcut to transform.position
+ /// </summary>
+ /// <value>
+ /// - The point's world position
+ /// </value>
+ public Vector3 position
+ {
+ get { return transform.position; }
+ set { transform.position = value; }
+ }
+
+ /// <summary>
+ /// - Shortcut to transform.localPosition
+ /// </summary>
+ /// <value>
+ /// - The point's local position.
+ /// </value>
+ public Vector3 localPosition
+ {
+ get { return transform.localPosition; }
+ set { transform.localPosition = value; }
+ }
+
+ /// <summary>
+ /// - Local position of the first handle
+ /// - Setting this value will cause the curve to become dirty
+ /// - This handle effects the curve generated from this point and the point proceeding it in curve.points
+ /// </summary>
+ [SerializeField]
+ private Vector3 _handle1;
+ public Vector3 handle1
+ {
+ get { return _handle1; }
+ set
+ {
+ if(_handle1 == value) return;
+ _handle1 = value;
+ if(handleStyle == HandleStyle.None) handleStyle = HandleStyle.Broken;
+ else if(handleStyle == HandleStyle.Connected) _handle2 = -value;
+ _curve.SetDirty();
+ }
+ }
+
+ /// <summary>
+ /// - Global position of the first handle
+ /// - Ultimately stored in the 'handle1' variable
+ /// - Setting this value will cause the curve to become dirty
+ /// - This handle effects the curve generated from this point and the point proceeding it in curve.points
+ /// </summary>
+ public Vector3 globalHandle1
+ {
+ get{return transform.TransformPoint(handle1);}
+ set{handle1 = transform.InverseTransformPoint(value);}
+ }
+
+ /// <summary>
+ /// - Local position of the second handle
+ /// - Setting this value will cause the curve to become dirty
+ /// - This handle effects the curve generated from this point and the point coming after it in curve.points
+ /// </summary>
+ [SerializeField]
+ private Vector3 _handle2;
+ public Vector3 handle2
+ {
+ get { return _handle2; }
+ set
+ {
+ if(_handle2 == value) return;
+ _handle2 = value;
+ if(handleStyle == HandleStyle.None) handleStyle = HandleStyle.Broken;
+ else if(handleStyle == HandleStyle.Connected) _handle1 = -value;
+ _curve.SetDirty();
+ }
+ }
+
+ /// <summary>
+ /// - Global position of the second handle
+ /// - Ultimately stored in the 'handle2' variable
+ /// - Setting this value will cause the curve to become dirty
+ /// - This handle effects the curve generated from this point and the point coming after it in curve.points
+ /// </summary>
+ public Vector3 globalHandle2
+ {
+ get{return transform.TransformPoint(handle2);}
+ set{handle2 = transform.InverseTransformPoint(value);}
+ }
+
+ #endregion
+
+ #region PrivateVariables
+
+ /// <summary>
+ /// - Used to determine if this point has moved since the last frame
+ /// </summary>
+ private Vector3 lastPosition;
+
+ #endregion
+
+ #region MonoBehaviourFunctions
+
+ void Update()
+ {
+ if(!_curve.dirty && transform.position != lastPosition)
+ {
+ _curve.SetDirty();
+ lastPosition = transform.position;
+ }
+ }
+
+ #endregion
+}
diff --git a/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs.meta b/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs.meta
new file mode 100644
index 00000000..a0f6a990
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1dff893e341592e438963ea8cbceb377
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ThirdParty/BezierCurves/readme.txt b/Assets/ThirdParty/BezierCurves/readme.txt
new file mode 100644
index 00000000..c363f511
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/readme.txt
@@ -0,0 +1,17 @@
+Product : Bezier Curve Editor Package
+Studio : Arkham Interactive
+Date : September 9th, 2013
+Version : 1.0
+Email : support@arkhaminteractive.com
+
+How to use:
+ 1) Add BezierCurve package to your Unity project
+ 2a) Add BezierCurve.cs script from Assets/BezierCurves/Scripts to any object
+ 2b) Alternatively, select GameObject/Create Other/Bezier Curve
+ 3) Use "Add Point" button to add bezier points to the curve
+ 4) Use "X" button to remove bezier points from the curve
+ 5) Use "/\" or "\/" to move points up or down in the curve order
+
+ - The BezierCurve class also contains static functions used for getting points on first, second, and third order bezier curves.
+ - These functions take the positions of the anchor points as arguments.
+ - Instances of the BezierCurve object use these same functions to calculate positions. \ No newline at end of file
diff --git a/Assets/ThirdParty/BezierCurves/readme.txt.meta b/Assets/ThirdParty/BezierCurves/readme.txt.meta
new file mode 100644
index 00000000..c58d287d
--- /dev/null
+++ b/Assets/ThirdParty/BezierCurves/readme.txt.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1c019e87c4c680d4ba6e2fb138a2e1ee
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: