void OnSlidesceneCreated(string val) { uAdventure.Core.Animation newAnim = new uAdventure.Core.Animation(val.Split('/').Last()); newAnim.getFrame(0).setUri(EMPTY + "_01.png"); AnimationWriter.WriteAnimation(val, newAnim); AssetDatabase.ImportAsset("Assets/uAdventure/Resources/CurrentGame/" + val); Path = val; }
protected void OnGUI() { if (workingAnimation == null) { this.Close(); return; } switch (Event.current.type) { case EventType.DragUpdated: if (DragAndDrop.paths != null && DragAndDrop.paths.Length > 0) { DragAndDrop.visualMode = DragAndDropVisualMode.Copy; Debug.Log("Dragging (" + Event.current.type + "):" + System.String.Join("\n", DragAndDrop.paths)); } break; case EventType.DragPerform: if (DragAndDrop.paths != null && DragAndDrop.paths.Length > 0) { DragAndDrop.AcceptDrag(); foreach (var path in DragAndDrop.paths) { var uri = AssetsController.AddSingleAsset(AssetsConstants.CATEGORY_ANIMATION_IMAGE, path); var frame = workingAnimation.addFrame(selectedFrame, null); frame.setUri(uri); } } break; } EditorGUILayout.PrefixLabel(TC.get("Animation.GeneralInfo"), GUIStyle.none, titleStyle); EditorGUI.BeginChangeCheck(); var documentationTextContent = EditorGUILayout.TextField(TC.get("Animation.Documentation"), workingAnimation.getDocumentation()); if (EditorGUI.EndChangeCheck()) { workingAnimation.setDocumentation(documentationTextContent); } EditorGUI.BeginChangeCheck(); var useTransitions = EditorGUILayout.Toggle(TC.get("Animation.UseTransitions"), workingAnimation.isUseTransitions()); if (EditorGUI.EndChangeCheck()) { workingAnimation.setUseTransitions(useTransitions); } EditorGUI.BeginChangeCheck(); var isSlides = EditorGUILayout.Toggle(TC.get("Animation.Slides"), workingAnimation.isSlides()); if (EditorGUI.EndChangeCheck()) { workingAnimation.setSlides(isSlides); } /* * Transition panel */ EditorGUILayout.PrefixLabel(TC.get("Animation.Timeline"), GUIStyle.none, titleStyle); using (var scroll = new EditorGUILayout.ScrollViewScope(scrollPosition, true, false, GUILayout.Height(125))) using (new EditorGUILayout.HorizontalScope()) using (new GUIUtil.SkinScope(noBackgroundSkin)) { scrollPosition = scroll.scrollPosition; for (int i = 0, frameCount = workingAnimation.getFrames().Count; i < frameCount; i++) { if (selectedFrame == i) { GUI.skin = selectedFrameSkin; } var frame = workingAnimation.getFrame(i); var image = Controller.ResourceManager.getImage(frame.getUri()); var frameContent = new GUIContent(frame.getTime().ToString(), image); if (GUILayout.Button(frameContent, GUILayout.Height(100), GUILayout.Width(80))) { selectedFrame = (i == selectedFrame) ? -1 : i; GUI.FocusControl(null); } if (useTransitions && i != workingAnimation.getFrames().Count - 1) { var transition = workingAnimation.getTranstionForFrame(i); var transitionContent = new GUIContent(transition.getTime().ToString(), transitionTypeTexture[(int)transition.getType()]); if (GUILayout.Button(transitionContent, GUILayout.Height(100), GUILayout.Width(80))) { selectedFrame = (i == selectedFrame) ? -1 : i; GUI.FocusControl(null); } } GUI.skin = noBackgroundSkin; } } /* * Transition button panel */ using (new EditorGUILayout.HorizontalScope()) using (new GUIUtil.SkinScope(noBackgroundSkin)) { GUILayout.FlexibleSpace(); using (new EditorGUI.DisabledScope(selectedFrame < 0)) { if (GUILayout.Button(moveLeft)) { workingAnimation.moveLeft(selectedFrame); selectedFrame--; } } using (new EditorGUI.DisabledScope(selectedFrame < 0 || workingAnimation.getFrames().Count < 2)) { if (GUILayout.Button(clearImg)) { workingAnimation.removeFrame(selectedFrame); selectedFrame--; } } if (GUILayout.Button(addTexture)) { var frame = workingAnimation.addFrame(selectedFrame, null); frame.setUri(SpecialAssetPaths.ASSET_EMPTY_ANIMATION + "_01.png"); } using (new EditorGUI.DisabledScope(selectedFrame < 0)) { if (GUILayout.Button(duplicateImg)) { workingAnimation.addFrame(selectedFrame, workingAnimation.getFrame(selectedFrame)); } } using (new EditorGUI.DisabledScope(selectedFrame >= workingAnimation.getFrames().Count - 1)) { if (GUILayout.Button(moveRight)) { workingAnimation.moveRight(selectedFrame); selectedFrame++; } } GUILayout.FlexibleSpace(); } using (new EditorGUI.DisabledScope(selectedFrame == -1)) {/* * Frame info panel */ var frame = selectedFrame >= 0 ? workingAnimation.getFrame(selectedFrame): emptyFrame; EditorGUILayout.PrefixLabel(TC.get("Animation.Details"), GUIStyle.none, titleStyle); EditorGUI.BeginChangeCheck(); var frameDocumentation = EditorGUILayout.TextField(TC.get("Animation.Documentation"), frame.getDocumentation()); if (EditorGUI.EndChangeCheck()) { frame.setDocumentation(frameDocumentation); } EditorGUI.BeginChangeCheck(); var frameDuration = System.Math.Max(0, EditorGUILayout.LongField(TC.get("Animation.Duration"), frame.getTime())); if (EditorGUI.EndChangeCheck()) { frame.setTime(frameDuration); } EditorGUI.BeginChangeCheck(); imageChooser.Path = frame.getUri(); imageChooser.DoLayout(); if (EditorGUI.EndChangeCheck()) { frame.setUri(imageChooser.Path); } EditorGUI.BeginChangeCheck(); soundChooser.Path = frame.getSoundUri(); soundChooser.DoLayout(); if (EditorGUI.EndChangeCheck()) { frame.setSoundUri(soundChooser.Path); } var editTransition = useTransitions && selectedFrame.InRange(-1, workingAnimation.getFrames().Count - 1); var transition = editTransition ? workingAnimation.getTranstionForFrame(selectedFrame) : emptyTransition; using (new EditorGUI.DisabledScope(!editTransition)) { EditorGUILayout.PrefixLabel(TC.get("NextScene.Transition"), GUIStyle.none, titleStyle); EditorGUI.BeginChangeCheck(); var transitionDuration = EditorGUILayout.LongField(TC.get("Animation.Duration"), transition.getTime()); if (EditorGUI.EndChangeCheck()) { transition.setTime(transitionDuration); } EditorGUI.BeginChangeCheck(); var transitionType = EditorGUILayout.Popup(TC.get("Conditions.Type"), (int)transition.getType(), transitionTypeName); if (EditorGUI.EndChangeCheck()) { transition.setType((TransitionType)transitionType); } } } var lastEditorRect = GUILayoutUtility.GetLastRect(); // Ending buttons GUILayout.FlexibleSpace(); using (new EditorGUILayout.HorizontalScope()) { if (GUILayout.Button("OK")) { // If it doesnt have an extension its because its an old animation if (!Path.HasExtension(cutscenePath)) { cutscenePath = cutscenePath + ".eaa.xml"; } AnimationWriter.WriteAnimation(cutscenePath, workingAnimation); AssetDatabase.Refresh(ImportAssetOptions.Default); if (reference != null) { reference.OnDialogOk(cutscenePath, this); } this.Close(); } if (GUILayout.Button(TC.get("GeneralText.Cancel"))) { if (reference != null) { reference.OnDialogCanceled(); } this.Close(); } } if (Event.current.type == EventType.Repaint) { var lastButtonRect = GUILayoutUtility.GetLastRect(); var minheight = lastEditorRect.y + lastEditorRect.height + lastEditorRect.height + 10; minSize = new Vector2(400, minheight); } }