private void handleDragInteraction(Rect position, AudioTrack track, Vector2 translation, Vector2 scale) { Rect controlBackground = new Rect(0, 0, position.width, position.height); switch (Event.current.type) { case EventType.DragUpdated: if (controlBackground.Contains(Event.current.mousePosition)) { bool audioFound = false; Object[] objRefs = DragAndDrop.objectReferences; for (int i = 0; i < objRefs.Length; i++) { AudioClip clip = objRefs[i] as AudioClip; if (clip != null) { audioFound = true; break; } } if (audioFound) { DragAndDrop.visualMode = DragAndDropVisualMode.Link; Event.current.Use(); } } break; case EventType.DragPerform: if (controlBackground.Contains(Event.current.mousePosition)) { AudioClip clip = null; Object[] objRefs = DragAndDrop.objectReferences; for (int i = 0; i < objRefs.Length; i++) { AudioClip audioClip = objRefs[i] as AudioClip; if (audioClip != null) { clip = audioClip; break; } } if (clip != null) { float fireTime = (Event.current.mousePosition.x - translation.x) / scale.x; CinemaAudio ca = CutsceneItemFactory.CreateCinemaAudio(track, clip, fireTime); Undo.RegisterCreatedObjectUndo(ca, string.Format("Created {0}", ca.name)); Event.current.Use(); } } break; } }
protected override void updateHeaderControl3(UnityEngine.Rect position) { AudioTrack track = TargetTrack.Behaviour as AudioTrack; if (track == null) { return; } Color temp = GUI.color; GUI.color = (track.AudioClips.Length > 0) ? Color.green : Color.red; int controlID = GUIUtility.GetControlID(track.GetInstanceID(), FocusType.Passive, position); if (GUI.Button(position, string.Empty, TrackGroupControl.styles.addIcon)) { EditorGUIUtility.ShowObjectPicker <AudioClip>(null, false, string.Empty, controlID); } if (Event.current.type == EventType.ExecuteCommand && Event.current.commandName == "ObjectSelectorClosed") { if (EditorGUIUtility.GetObjectPickerControlID() == controlID) { Object pickedObject = EditorGUIUtility.GetObjectPickerObject(); AudioClip clip = (pickedObject as AudioClip); if (clip != null) { CinemaAudio ca = CutsceneItemFactory.CreateCinemaAudio(track, clip, state.ScrubberPosition); Undo.RegisterCreatedObjectUndo(ca, string.Format("Created {0}", ca.name)); } Event.current.Use(); } } GUI.color = temp; }
private void handleDragInteraction(Rect position, AudioTrack track, Vector2 translation, Vector2 scale) { Rect controlBackground = new Rect(0, 0, position.width, position.height); switch (Event.current.type) { case EventType.DragUpdated: if (controlBackground.Contains(Event.current.mousePosition)) { bool audioFound = false; { // foreach(var objectReference in DragAndDrop.objectReferences) var __enumerator1 = (DragAndDrop.objectReferences).GetEnumerator(); while (__enumerator1.MoveNext()) { var objectReference = (Object)__enumerator1.Current; { AudioClip clip = objectReference as AudioClip; if (clip != null) { audioFound = true; break; } } } } if (audioFound) { DragAndDrop.visualMode = DragAndDropVisualMode.Link; Event.current.Use(); } } break; case EventType.DragPerform: if (controlBackground.Contains(Event.current.mousePosition)) { AudioClip clip = null; { // foreach(var objectReference in DragAndDrop.objectReferences) var __enumerator2 = (DragAndDrop.objectReferences).GetEnumerator(); while (__enumerator2.MoveNext()) { var objectReference = (Object)__enumerator2.Current; { AudioClip audioClip = objectReference as AudioClip; if (audioClip != null) { clip = audioClip; break; } } } } if (clip != null) { float fireTime = (Event.current.mousePosition.x - translation.x) / scale.x; CinemaAudio ca = CutsceneItemFactory.CreateCinemaAudio(track, clip, fireTime); Undo.RegisterCreatedObjectUndo(ca, string.Format("Created {0}", ca.name)); Event.current.Use(); } } break; } }