public override void OnInspectorGUI() { base.OnInspectorGUI(); EditorGUIUtils.SetGUIStyles(null); GUILayout.Space(3f); EditorGUIUtils.InspectorLogo(); if (Application.isPlaying) { GUILayout.Space(8f); GUILayout.Label("Path Editor disabled while in play mode", EditorGUIUtils.wordWrapLabelStyle, new GUILayoutOption[0]); GUILayout.Space(10f); return; } if (this._refreshAfterEnable) { this._refreshAfterEnable = false; if (this._src.path == null) { this.ResetPath(RepaintMode.None); } else { this.RefreshPath(RepaintMode.Scene, true); } this._wpsList = new ReorderableList(this._src.wps, typeof(Vector3), true, true, true, true); ReorderableList arg_CD_0 = this._wpsList; ReorderableList.HeaderCallbackDelegate arg_CD_1; if ((arg_CD_1 = DOTweenPathInspector.HeaderItem.headerHander) == null) { HeaderItem.headerHander = new ReorderableList.HeaderCallbackDelegate(HeaderItem.item.OnInspectorGUI); arg_CD_1 = HeaderItem.headerHander; } arg_CD_0.drawHeaderCallback = arg_CD_1; this._wpsList.onReorderCallback = delegate(ReorderableList list) { this.RefreshPath(RepaintMode.Scene, true); }; this._wpsList.drawElementCallback = delegate(Rect rect, int index, bool isActive, bool isFocused) { Rect position = new Rect(rect.xMin, rect.yMin, 23f, rect.height); Rect position2 = new Rect(position.xMax, position.yMin, rect.width - 23f, position.height); GUI.Label(position, (index + 1).ToString()); this._src.wps[index] = EditorGUI.Vector3Field(position2, "", this._src.wps[index]); }; } bool flag = false; Undo.RecordObject(this._src, "DOTween Path"); if (this._src.inspectorMode != DOTweenInspectorMode.Default) { GUILayout.Label("Inspector Mode: <b>" + this._src.inspectorMode + "</b>", ABSAnimationInspector.styles.custom.warningLabel, new GUILayoutOption[0]); GUILayout.Space(2f); } if (!(this._src.GetComponent <DOTweenVisualManager>() != null) && this._showAddManager) { if (GUILayout.Button(new GUIContent("Add Manager", "Adds a manager component which allows you to choose additional options for this gameObject"), new GUILayoutOption[0])) { this._src.gameObject.AddComponent <DOTweenVisualManager>(); } GUILayout.Space(4f); } AnimationInspectorGUI.StickyTitle("Scene View Commands"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.Label("➲ SHIFT + " + (EditorUtils.isOSXEditor ? "CMD" : "CTRL") + ": add a waypoint\n➲ SHIFT + ALT: remove a waypoint", new GUILayoutOption[0]); DeGUILayout.EndVBox(); AnimationInspectorGUI.StickyTitle("Info"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.Label("Path Length: " + ((this._src.path == null) ? "-" : this._src.path.length.ToString()), new GUILayoutOption[0]); DeGUILayout.EndVBox(); if (this._showTweenSettings) { AnimationInspectorGUI.StickyTitle("Tween Options"); GUILayout.BeginHorizontal(new GUILayoutOption[0]); this._src.autoPlay = DeGUILayout.ToggleButton(this._src.autoPlay, new GUIContent("AutoPlay", "If selected, the tween will play automatically"), DeGUI.styles.button.tool, new GUILayoutOption[0]); this._src.autoKill = DeGUILayout.ToggleButton(this._src.autoKill, new GUIContent("AutoKill", "If selected, the tween will be killed when it completes, and won't be reusable"), DeGUI.styles.button.tool, new GUILayoutOption[0]); GUILayout.EndHorizontal(); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.BeginHorizontal(new GUILayoutOption[0]); this._src.duration = EditorGUILayout.FloatField("Duration", this._src.duration, new GUILayoutOption[0]); if (this._src.duration < 0f) { this._src.duration = 0f; } this._src.isSpeedBased = DeGUILayout.ToggleButton(this._src.isSpeedBased, new GUIContent("SpeedBased", "If selected, the duration will count as units/degree x second"), DeGUI.styles.button.tool, new GUILayoutOption[] { GUILayout.Width(75f) }); GUILayout.EndHorizontal(); this._src.delay = EditorGUILayout.FloatField("Delay", this._src.delay, new GUILayoutOption[0]); if (this._src.delay < 0f) { this._src.delay = 0f; } this._src.easeType = EditorGUIUtils.FilteredEasePopup(this._src.easeType); if (this._src.easeType == Ease.INTERNAL_Custom) { this._src.easeCurve = EditorGUILayout.CurveField(" Ease Curve", this._src.easeCurve, new GUILayoutOption[0]); } this._src.loops = EditorGUILayout.IntField(new GUIContent("Loops", "Set to -1 for infinite loops"), this._src.loops, new GUILayoutOption[0]); if (this._src.loops < -1) { this._src.loops = -1; } if (this._src.loops > 1 || this._src.loops == -1) { this._src.loopType = (LoopType)EditorGUILayout.EnumPopup(" Loop Type", this._src.loopType, new GUILayoutOption[0]); } this._src.id = EditorGUILayout.TextField("ID", this._src.id, new GUILayoutOption[0]); this._src.updateType = (UpdateType)EditorGUILayout.EnumPopup("Update Type", this._src.updateType, new GUILayoutOption[0]); if (this._src.inspectorMode == DOTweenInspectorMode.Developer) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); Rigidbody component = this._src.GetComponent <Rigidbody>(); this._src.tweenRigidbody = EditorGUILayout.Toggle("Tween Rigidbody", component != null && this._src.tweenRigidbody, new GUILayoutOption[0]); if (component == null) { GUILayout.Label("No rigidbody found", ABSAnimationInspector.styles.custom.warningLabel, new GUILayoutOption[0]); } GUILayout.EndHorizontal(); if (this._src.tweenRigidbody) { EditorGUILayout.HelpBox("Tweening a rigidbody works correctly only when it's kinematic", MessageType.Warning); } } DeGUILayout.EndVBox(); AnimationInspectorGUI.StickyTitle("Path Tween Options"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); PathType pathType = this._src.pathType; this._src.pathType = (PathType)EditorGUILayout.EnumPopup("Path Type", this._src.pathType, new GUILayoutOption[0]); if (pathType != this._src.pathType) { flag = true; } if (this._src.pathType != PathType.Linear) { this._src.pathResolution = EditorGUILayout.IntSlider(" Path resolution", this._src.pathResolution, 2, 20, new GUILayoutOption[0]); } bool isClosedPath = this._src.isClosedPath; this._src.isClosedPath = EditorGUILayout.Toggle("Close Path", this._src.isClosedPath, new GUILayoutOption[0]); if (isClosedPath != this._src.isClosedPath) { flag = true; } this._src.isLocal = EditorGUILayout.Toggle(new GUIContent("Local Movement", "If checked, the path will tween the localPosition (instead than the position) of its target"), this._src.isLocal, new GUILayoutOption[0]); this._src.pathMode = (PathMode)EditorGUILayout.EnumPopup("Path Mode", this._src.pathMode, new GUILayoutOption[0]); this._src.lockRotation = (AxisConstraint)EditorGUILayout.EnumPopup("Lock Rotation", this._src.lockRotation, new GUILayoutOption[0]); this._src.orientType = (OrientType)EditorGUILayout.EnumPopup("Orientation", this._src.orientType, new GUILayoutOption[0]); if (this._src.orientType != OrientType.None) { switch (this._src.orientType) { case OrientType.ToPath: this._src.lookAhead = EditorGUILayout.Slider(" LookAhead", this._src.lookAhead, 0f, 1f, new GUILayoutOption[0]); break; case OrientType.LookAtTransform: this._src.lookAtTransform = (EditorGUILayout.ObjectField(" LookAt Target", this._src.lookAtTransform, typeof(Transform), true, new GUILayoutOption[0]) as Transform); break; case OrientType.LookAtPosition: this._src.lookAtPosition = EditorGUILayout.Vector3Field(" LookAt Position", this._src.lookAtPosition, new GUILayoutOption[0]); break; } } DeGUILayout.EndVBox(); } AnimationInspectorGUI.StickyTitle("Path Editor Options"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); this._src.relative = EditorGUILayout.Toggle(new GUIContent("Relative", "If toggled, the whole path moves with the target"), this._src.relative, new GUILayoutOption[0]); this._src.pathColor = EditorGUILayout.ColorField("Color", this._src.pathColor, new GUILayoutOption[0]); this._src.showIndexes = EditorGUILayout.Toggle("Show Indexes", this._src.showIndexes, new GUILayoutOption[0]); this._src.showWpLength = EditorGUILayout.Toggle("Show WPs Lengths", this._src.showWpLength, new GUILayoutOption[0]); this._src.livePreview = EditorGUILayout.Toggle("Live Preview", this._src.livePreview, new GUILayoutOption[0]); GUILayout.BeginHorizontal(new GUILayoutOption[0]); GUILayout.Label("Handles Type/Mode", new GUILayoutOption[] { GUILayout.Width(EditorGUIUtility.labelWidth - 11f) }); this._src.handlesType = (HandlesType)EditorGUILayout.EnumPopup(this._src.handlesType, new GUILayoutOption[0]); this._src.handlesDrawMode = (HandlesDrawMode)EditorGUILayout.EnumPopup(this._src.handlesDrawMode, new GUILayoutOption[0]); GUILayout.EndHorizontal(); if (this._src.handlesDrawMode == HandlesDrawMode.Perspective) { this._src.perspectiveHandleSize = EditorGUILayout.FloatField(" Handle Size", this._src.perspectiveHandleSize, new GUILayoutOption[0]); } DeGUILayout.EndVBox(); if (this._showTweenSettings) { AnimationInspectorGUI.AnimationEvents(this, this._src); } this.DrawExtras(); GUILayout.Space(10f); DeGUILayout.BeginToolbar(new GUILayoutOption[0]); this._src.wpsDropdown = DeGUILayout.ToolbarFoldoutButton(this._src.wpsDropdown, "Waypoints", false, false); GUILayout.FlexibleSpace(); if (GUILayout.Button(new GUIContent("Copy to clipboard", "Copies the current waypoints to clipboard, as an array ready to be pasted in your code"), DeGUI.styles.button.tool, new GUILayoutOption[0])) { this.CopyWaypointsToClipboard(); } DeGUILayout.EndToolbar(); if (this._src.wpsDropdown) { DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); bool arg_ABE_0 = GUI.changed; this._wpsList.DoLayoutList(); if (!arg_ABE_0 && GUI.changed) { flag = true; } DeGUILayout.EndVBox(); } else { GUILayout.Space(5f); } if (flag) { this.RefreshPath(RepaintMode.Scene, false); return; } if (GUI.changed) { EditorUtility.SetDirty(this._src); this.DORepaint(RepaintMode.Scene, false); } }
public override void OnInspectorGUI() { //IL_0174: Unknown result type (might be due to invalid IL or missing references) //IL_0179: Unknown result type (might be due to invalid IL or missing references) //IL_01c4: Unknown result type (might be due to invalid IL or missing references) //IL_01c9: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_02a0: Unknown result type (might be due to invalid IL or missing references) //IL_02a5: Unknown result type (might be due to invalid IL or missing references) //IL_02c4: Unknown result type (might be due to invalid IL or missing references) //IL_02c9: Unknown result type (might be due to invalid IL or missing references) //IL_034b: Unknown result type (might be due to invalid IL or missing references) //IL_0350: Unknown result type (might be due to invalid IL or missing references) //IL_050f: Unknown result type (might be due to invalid IL or missing references) //IL_0514: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_0782: Unknown result type (might be due to invalid IL or missing references) //IL_0991: Unknown result type (might be due to invalid IL or missing references) //IL_0996: Unknown result type (might be due to invalid IL or missing references) //IL_09c5: Unknown result type (might be due to invalid IL or missing references) //IL_09ca: Unknown result type (might be due to invalid IL or missing references) base.OnInspectorGUI(); EditorGUIUtils.SetGUIStyles(null); GUILayout.Space(3f); EditorGUIUtils.InspectorLogo(); if (Application.isPlaying) { GUILayout.Space(8f); GUILayout.Label("Path Editor disabled while in play mode", EditorGUIUtils.wordWrapLabelStyle); GUILayout.Space(10f); } else { if (this._refreshAfterEnable) { this._refreshAfterEnable = false; if (this._src.path == null) { this.ResetPath(RepaintMode.None); } else { this.RefreshPath(RepaintMode.Scene, true); } this._wpsList = new ReorderableList(this._src.wps, typeof(Vector3), true, true, true, true); this._wpsList.drawHeaderCallback = delegate(Rect rect) { EditorGUI.LabelField(rect, "Path Waypoints"); }; this._wpsList.onReorderCallback = delegate { this.RefreshPath(RepaintMode.Scene, true); }; this._wpsList.drawElementCallback = delegate(Rect rect, int index, bool isActive, bool isFocused) { Rect position = new Rect(rect.xMin, rect.yMin, 23f, rect.height); Rect position2 = new Rect(position.xMax, position.yMin, rect.width - 23f, position.height); GUI.Label(position, (index + 1).ToString()); this._src.wps[index] = EditorGUI.Vector3Field(position2, "", this._src.wps[index]); }; } bool flag = false; Undo.RecordObject(this._src, "DOTween Path"); if (!((UnityEngine.Object)((Component)this._src).GetComponent <DOTweenVisualManager>() != (UnityEngine.Object)null) && this._src.inspectorMode != DOTweenInspectorMode.InfoAndWaypointsOnly) { if (GUILayout.Button(new GUIContent("Add Manager", "Adds a manager component which allows you to choose additional options for this gameObject"))) { this._src.gameObject.AddComponent <DOTweenVisualManager>(); } GUILayout.Space(4f); } AnimationInspectorGUI.StickyTitle("Scene View Commands"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.Label("➲ SHIFT + " + (EditorUtils.isOSXEditor ? "CMD" : "CTRL") + ": add a waypoint\n➲ SHIFT + ALT: remove a waypoint"); DeGUILayout.EndVBox(); AnimationInspectorGUI.StickyTitle("Info"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.Label("Path Length: " + ((this._src.path == null) ? "-" : this._src.path.length.ToString())); DeGUILayout.EndVBox(); if (this._src.inspectorMode != DOTweenInspectorMode.InfoAndWaypointsOnly) { AnimationInspectorGUI.StickyTitle("Tween Options"); GUILayout.BeginHorizontal(); this._src.autoPlay = DeGUILayout.ToggleButton(this._src.autoPlay, new GUIContent("AutoPlay", "If selected, the tween will play automatically"), DeGUI.styles.button.tool, new GUILayoutOption[0]); this._src.autoKill = DeGUILayout.ToggleButton(this._src.autoKill, new GUIContent("AutoKill", "If selected, the tween will be killed when it completes, and won't be reusable"), DeGUI.styles.button.tool, new GUILayoutOption[0]); GUILayout.EndHorizontal(); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); GUILayout.BeginHorizontal(); this._src.duration = EditorGUILayout.FloatField("Duration", this._src.duration); if (this._src.duration < 0f) { this._src.duration = 0f; } this._src.isSpeedBased = DeGUILayout.ToggleButton(this._src.isSpeedBased, new GUIContent("SpeedBased", "If selected, the duration will count as units/degree x second"), DeGUI.styles.button.tool, new GUILayoutOption[1] { GUILayout.Width(75f) }); GUILayout.EndHorizontal(); this._src.delay = EditorGUILayout.FloatField("Delay", this._src.delay); if (this._src.delay < 0f) { this._src.delay = 0f; } this._src.easeType = EditorGUIUtils.FilteredEasePopup(this._src.easeType); if (this._src.easeType == Ease.INTERNAL_Custom) { this._src.easeCurve = EditorGUILayout.CurveField(" Ease Curve", this._src.easeCurve); } this._src.loops = EditorGUILayout.IntField(new GUIContent("Loops", "Set to -1 for infinite loops"), this._src.loops); if (this._src.loops < -1) { this._src.loops = -1; } if (this._src.loops > 1 || this._src.loops == -1) { this._src.loopType = (LoopType)EditorGUILayout.EnumPopup(" Loop Type", (Enum)(object)this._src.loopType); } this._src.id = EditorGUILayout.TextField("ID", this._src.id); this._src.updateType = (UpdateType)EditorGUILayout.EnumPopup("Update Type", (Enum)(object)this._src.updateType); DeGUILayout.EndVBox(); AnimationInspectorGUI.StickyTitle("Path Tween Options"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); PathType pathType = this._src.pathType; this._src.pathType = (PathType)EditorGUILayout.EnumPopup("Path Type", (Enum)(object)this._src.pathType); if (pathType != this._src.pathType) { flag = true; } if (this._src.pathType != 0) { this._src.pathResolution = EditorGUILayout.IntSlider(" Path resolution", this._src.pathResolution, 2, 20); } bool isClosedPath = this._src.isClosedPath; this._src.isClosedPath = EditorGUILayout.Toggle("Close Path", this._src.isClosedPath); if (isClosedPath != this._src.isClosedPath) { flag = true; } this._src.isLocal = EditorGUILayout.Toggle(new GUIContent("Local Movement", "If checked, the path will tween the localPosition (instead than the position) of its target"), this._src.isLocal); this._src.pathMode = (PathMode)EditorGUILayout.EnumPopup("Path Mode", (Enum)(object)this._src.pathMode); this._src.lockRotation = (AxisConstraint)EditorGUILayout.EnumPopup("Lock Rotation", (Enum)(object)this._src.lockRotation); this._src.orientType = (OrientType)EditorGUILayout.EnumPopup("Orientation", (Enum)(object)this._src.orientType); if (this._src.orientType != 0) { switch (this._src.orientType) { case OrientType.LookAtTransform: this._src.lookAtTransform = (EditorGUILayout.ObjectField(" LookAt Target", this._src.lookAtTransform, typeof(Transform), true) as Transform); break; case OrientType.LookAtPosition: this._src.lookAtPosition = EditorGUILayout.Vector3Field(" LookAt Position", this._src.lookAtPosition); break; case OrientType.ToPath: this._src.lookAhead = EditorGUILayout.Slider(" LookAhead", this._src.lookAhead, 0f, 1f); break; } } DeGUILayout.EndVBox(); AnimationInspectorGUI.StickyTitle("Path Editor Options"); DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); this._src.relative = EditorGUILayout.Toggle(new GUIContent("Relative", "If toggled, the whole path moves with the target"), this._src.relative); this._src.pathColor = EditorGUILayout.ColorField("Color", this._src.pathColor); this._src.showIndexes = EditorGUILayout.Toggle("Show Indexes", this._src.showIndexes); this._src.showWpLength = EditorGUILayout.Toggle("Show WPs Lengths", this._src.showWpLength); this._src.livePreview = EditorGUILayout.Toggle("Live Preview", this._src.livePreview); this._src.handlesType = (HandlesType)EditorGUILayout.EnumPopup("Handles Type", (Enum)(object)this._src.handlesType); this._src.handlesDrawMode = (HandlesDrawMode)EditorGUILayout.EnumPopup("Handles Mode", (Enum)(object)this._src.handlesDrawMode); if (this._src.handlesDrawMode == HandlesDrawMode.Perspective) { this._src.perspectiveHandleSize = EditorGUILayout.FloatField(" Handle Size", this._src.perspectiveHandleSize); } DeGUILayout.EndVBox(); GUILayout.Space(6f); if (GUILayout.Button("Reset Path")) { this.ResetPath(RepaintMode.SceneAndInspector); } AnimationInspectorGUI.AnimationEvents(this, this._src); } else { GUILayout.Space(6f); if (GUILayout.Button("Reset Path")) { this.ResetPath(RepaintMode.SceneAndInspector); } } GUILayout.Space(10f); DeGUILayout.BeginToolbar(new GUILayoutOption[0]); this._src.wpsDropdown = DeGUILayout.ToolbarFoldoutButton(this._src.wpsDropdown, "Waypoints", false, false); GUILayout.FlexibleSpace(); if (GUILayout.Button(new GUIContent("Copy to clipboard", "Copies the current waypoints to clipboard, as an array ready to be pasted in your code"), DeGUI.styles.button.tool)) { this.CopyWaypointsToClipboard(); } DeGUILayout.EndToolbar(); if (this._src.wpsDropdown) { DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); bool changed = GUI.changed; this._wpsList.DoLayoutList(); if (!changed && GUI.changed) { flag = true; } DeGUILayout.EndVBox(); } else { GUILayout.Space(5f); } if (flag) { this.RefreshPath(RepaintMode.Scene, false); } else if (GUI.changed) { EditorUtility.SetDirty(this._src); this.DORepaint(RepaintMode.Scene, false); } } }