/// <summary> /// Draw the inspector /// </summary> public override void OnInspectorGUI() { base.serializedObject.Update(); EditorGUILayout.BeginHorizontal(); //EditorGUILayout.PrefixLabel(new GUIContent("Director")); if (GUILayout.Button("Open Director")) { DirectorWindow window = EditorWindow.GetWindow(typeof(DirectorWindow)) as DirectorWindow; window.FocusCutscene(base.serializedObject.targetObject as Cutscene); } EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(this.duration, durationContent); EditorGUILayout.PropertyField(this.isLooping, loopingContent); EditorGUILayout.PropertyField(this.isSkippable, skippableContent); EditorGUILayout.PropertyField(this.canOptimize, optimizeContent); EditorGUILayout.PropertyField(this.resetPositionOnEnd, resetPositionOnEndContent); containerFoldout = EditorGUILayout.Foldout(containerFoldout, groupsContent); if (containerFoldout) { EditorGUI.indentLevel++; Cutscene c = base.serializedObject.targetObject as Cutscene; for (int i = 0; i < c.TrackGroups.Length; i++) { TrackGroup container = c.TrackGroups[i]; EditorGUILayout.BeginHorizontal(); container.name = EditorGUILayout.TextField(container.name); //GUILayout.Button("add", GUILayout.Width(16)); if (GUILayout.Button(inspectorIcon, GUILayout.Width(24))) { Selection.activeObject = container; } //GUILayout.Button("u", GUILayout.Width(16)); //GUILayout.Button("d", GUILayout.Width(16)); EditorGUILayout.EndHorizontal(); //EditorGUILayout.ObjectField(container.name, container, typeof(TrackGroup), true); } EditorGUI.indentLevel--; if (GUILayout.Button(addGroupContent)) { CutsceneControlHelper.ShowAddTrackGroupContextMenu(c); } } base.serializedObject.ApplyModifiedProperties(); }
private void EnterButton_Click(object sender, RoutedEventArgs e) { User user = fornitureContext.Users.FirstOrDefault(u => u.Login == TextBoxLogin.Text && u.Password == PasswordBox.Password); if (user != null) { if (TextBoxCapcha.Text == cumcha) { switch (user.Role) { case "Заказчик": CustomerWindow customerWindow = new CustomerWindow(user.Login); customerWindow.Show(); this.Close(); break; case "Менеджер": ManagerWindow managerWindow = new ManagerWindow(user.Login); managerWindow.Show(); this.Close(); break; case "Заместитель директора": DepDirectorWindow depDirectorWindow = new DepDirectorWindow(user.Login); depDirectorWindow.Show(); this.Close(); break; case "Мастер": MasterWindow masterWindow = new MasterWindow(user.Login); masterWindow.Show(); this.Close(); break; case "Директор": DirectorWindow directorWindow = new DirectorWindow(user.Login); directorWindow.Show(); this.Close(); break; } } else { MessageBox.Show("Капча введена не правильно"); } } else { MessageBox.Show("Такого пользователя не существует!"); } }
protected void OnEnable() { Instance = this; EditorApplication.playmodeStateChanged = (EditorApplication.CallbackFunction)Delegate.Combine(EditorApplication.playmodeStateChanged, new EditorApplication.CallbackFunction(this.PlaymodeStateChanged)); GUISkin skin = CreateInstance <GUISkin>(); skin = (EditorGUIUtility.isProSkin) ? Resources.Load <GUISkin>(PRO_SKIN) : Resources.Load <GUISkin>(FREE_SKIN); loadTextures(); titleContent = new GUIContent(TITLE, titleImage); directorControl = new DirectorControl(); directorControl.OnLoad(skin); directorControl.PlayCutscene += directorControl_PlayCutscene; directorControl.PauseCutscene += directorControl_PauseCutscene; directorControl.StopCutscene += directorControl_StopCutscene; directorControl.ScrubCutscene += directorControl_ScrubCutscene; directorControl.SetCutsceneTime += directorControl_SetCutsceneTime; directorControl.EnterPreviewMode += directorControl_EnterPreviewMode; directorControl.ExitPreviewMode += directorControl_ExitPreviewMode; directorControl.DragPerformed += directorControl_DragPerformed; isSnappingEnabled = directorControl.IsSnappingEnabled; directorControl.RepaintRequest += directorControl_RepaintRequest; previousTime = Time.realtimeSinceStartup; accumulatedTime = 0; int instanceId = -1; if (EditorPrefs.HasKey("DirectorControl.CutsceneID")) { instanceId = EditorPrefs.GetInt("DirectorControl.CutsceneID"); } if (instanceId >= 0) { foreach (Cutscene c in FindObjectsOfType <Cutscene>()) { if (c.GetInstanceID() == instanceId) { cutscene = c; } } } LoadSettings(); Undo.undoRedoPerformed += UndoRedoPerformed; }
public void OnDisable() { Instance = null; directorControl.OnDisable(); if (Application.isEditor && cutscene != null) { cutscene.ExitPreviewMode(); } if (cutscene != null) { EditorPrefs.SetInt("DirectorControl.CutsceneID", cutscene.GetInstanceID()); } Undo.undoRedoPerformed -= UndoRedoPerformed; }
public static void CreateCutscene(List <Sequence.FrameInfo> Frames, float DurationPerFrame) { string cutsceneName = DirectorHelper.getCutsceneItemName("New Cutscene", typeof(Cutscene)); GameObject cutsceneGO = new GameObject(cutsceneName); Cutscene cutscene = cutsceneGO.AddComponent <Cutscene>(); GameObject framesGO = new GameObject("Frames"); framesGO.transform.SetParent(cutsceneGO.transform); GameObject triggersGO = new GameObject("Triggers"); triggersGO.transform.SetParent(cutsceneGO.transform); List <Transform> frameTransforms = new List <Transform>(); float time = 0; for (int i = 0; i < Frames.Count; i++) { if (Frames[i].m_Source == null) { time += DurationPerFrame * Frames[i].Duration; continue; } var frameGO = GameObject.Instantiate(Frames[i].m_Source) as GameObject; frameGO.name = Frames[i].m_Source.name; frameGO.transform.SetParent(framesGO.transform); frameGO.transform.localPosition = Vector3.zero; frameGO.transform.localEulerAngles = Vector3.zero; frameGO.transform.localScale = Vector3.one; frameGO.SetActive(false); frameTransforms.Add(frameGO.transform); var group = CutsceneItemFactory.CreateActorTrackGroup(cutscene, frameGO.transform) as ActorTrackGroup; group.transform.SetParent(triggersGO.transform); var track = CutsceneItemFactory.CreateActorItemTrack(group); var action = CutsceneItemFactory.CreateActorAction(track, typeof(EnableGameObjectAction), "Temporary Enable", time) as EnableGameObjectAction; action.Firetime = time; action.Duration = DurationPerFrame * Frames[i].Duration; time += action.Duration; CutsceneItemFactory.CreateActorEvent(track, typeof(DisableGameObject), "Disable", 0); } cutscene.Duration = time; cutscene.IsLooping = true; cutscene.IsSkippable = false; // Cutscene trigger GameObject cutsceneTriggerGO = new GameObject("Cutscene Trigger"); cutsceneTriggerGO.transform.SetParent(cutsceneGO.transform); CutsceneTrigger cutsceneTrigger = cutsceneTriggerGO.AddComponent <CutsceneTrigger>(); cutsceneTrigger.StartMethod = StartMethod.OnStart; cutsceneTrigger.Cutscene = cutscene; int undoIndex = Undo.GetCurrentGroup(); Undo.RegisterCreatedObjectUndo(cutsceneGO, "Created New Cutscene"); Undo.CollapseUndoOperations(undoIndex); Selection.activeTransform = cutsceneGO.transform; // Open director DirectorWindow window = EditorWindow.GetWindow(typeof(DirectorWindow)) as DirectorWindow; window.FocusCutscene(cutscene); }
/// <summary> /// Draw the inspector /// </summary> public override void OnInspectorGUI() { base.serializedObject.Update(); EditorGUILayout.BeginHorizontal(); //EditorGUILayout.PrefixLabel(new GUIContent("Director")); if (GUILayout.Button("Open Director")) { DirectorWindow window = EditorWindow.GetWindow(typeof(DirectorWindow)) as DirectorWindow; window.FocusCutscene(base.serializedObject.targetObject as Cutscene); } EditorGUILayout.EndHorizontal(); EditorGUILayout.PropertyField(this.debug, debugContent); EditorGUILayout.PropertyField(this.duration, durationContent); EditorGUILayout.PropertyField(this.isLooping, loopingContent); EditorGUILayout.PropertyField(this.isSkippable, skippableContent); EditorGUILayout.PropertyField(this.canOptimize, optimizeContent); containerFoldout = EditorGUILayout.Foldout(containerFoldout, groupsContent); if (containerFoldout) { EditorGUI.indentLevel++; Cutscene c = base.serializedObject.targetObject as Cutscene; foreach (TrackGroup container in c.TrackGroups) { EditorGUILayout.BeginHorizontal(); container.name = EditorGUILayout.TextField(container.name); //GUILayout.Button("add", GUILayout.Width(16)); if (GUILayout.Button(inspectorIcon, GUILayout.Width(24))) { Selection.activeObject = container; } //GUILayout.Button("u", GUILayout.Width(16)); //GUILayout.Button("d", GUILayout.Width(16)); EditorGUILayout.EndHorizontal(); //EditorGUILayout.ObjectField(container.name, container, typeof(TrackGroup), true); } EditorGUI.indentLevel--; EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button(addGroupContent, GUILayout.Width(100))) { CutsceneControlHelper.ShowAddTrackGroupContextMenu(c); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); // if (GUILayout.Button(reflushEntityContent)) // { // Cutscene cutscene = base.target as Cutscene; // EntityTrackGroup[] actorGroupArr = cutscene.GetComponentsInChildren<EntityTrackGroup>(); // // foreach (EntityTrackGroup actorGroup in actorGroupArr) // { // EntityTrackGroupInspector.Initialize(actorGroup, actorGroup.Model,actorGroup.Wings, // actorGroup.Weapon, actorGroup.Horse); // } // } if (GUILayout.Button(resetContent)) { Cutscene cutscene = base.target as Cutscene; resetCutscene(cutscene); } if (GUILayout.Button(clearContent)) { clearTrackGroups((Cutscene)base.target); } EditorGUILayout.EndHorizontal(); if (GUILayout.Button(exportContent)) { exportPrefab(); } base.serializedObject.ApplyModifiedProperties(); }