diff options
Diffstat (limited to 'Assets/ThirdParty')
-rw-r--r-- | Assets/ThirdParty/BezierCurves.meta | 8 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor.meta | 8 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs | 263 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor/BezierCurveEditor.cs.meta | 11 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs | 152 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Editor/BezierPointEditor.cs.meta | 11 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Example.unity | 2693 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Example.unity.meta | 7 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Scripts.meta | 8 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs | 557 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Scripts/BezierCurve.cs.meta | 11 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs | 170 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/Scripts/BezierPoint.cs.meta | 11 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/readme.txt | 17 | ||||
-rw-r--r-- | Assets/ThirdParty/BezierCurves/readme.txt.meta | 7 |
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: |