public void AttachCutScene(XCutSceneData csd) { if (!IsPlayCutScene) { XAutoFade.FadeOut2In(1f, 0.2f); _cutscene_data = csd; GameCamera.Target = null; _cutscene_runer = GameCamera.CameraObject.AddComponent <XCutSceneRunner>(); _cutscene_runer.cut_scene_data = _cutscene_data; UIManager.singleton.OnCutScene(true); } else { XDebug.LogError("Is Playing Cutscene"); } }
//GameObject o = null; void OnGUI() { if (_labelstyle == null) { _labelstyle = new GUIStyle(EditorStyles.boldLabel); _labelstyle.fontSize = 11; } scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false); EditorGUILayout.Space(); GUILayout.Label("CutScene Editor:", _labelstyle); EditorGUILayout.Space(); _name = EditorGUILayout.TextField("Name", _name); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Scene", _scene); if (GUILayout.Button("Browser", GUILayout.MaxWidth(80))) { string file = EditorUtility.OpenFilePanel("Select unity scene file", XEditorLibrary.Sce, "unity"); if (file.Length != 0) { file = file.Remove(file.LastIndexOf(".")); _scene = file.Remove(0, file.IndexOf(XEditorLibrary.Sce)); Scene scene = EditorSceneManager.GetActiveScene(); if (scene.name.Length == 0 || !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { EditorSceneManager.OpenScene(_scene + ".unity"); } } } EditorGUILayout.EndHorizontal(); _auto_end = EditorGUILayout.Toggle("Auto End", _auto_end); EditorGUILayout.Space(); _general_show = EditorGUILayout.Toggle("General Clip", _general_show); if (_general_show) { _general_bigguy = EditorGUILayout.Toggle("General Big Guy", _general_bigguy); if (_general_bigguy) { _camera = Resources.Load("Animation/Main_Camera/Cut_Scene/cutscene_generalshow_bigguy", typeof(AnimationClip)) as AnimationClip; } else { _camera = Resources.Load("Animation/Main_Camera/Cut_Scene/cutscene_generalshow", typeof(AnimationClip)) as AnimationClip; } EditorGUILayout.ObjectField("Camera Clip", _camera, typeof(AnimationClip), true); } else { _camera = EditorGUILayout.ObjectField("Camera Clip", _camera, typeof(AnimationClip), true) as AnimationClip; } if (_camera != null) { _length = _camera.length; EditorGUILayout.LabelField("CutScene Length", _length.ToString("F3") + "s" + "\t" + (_length * XEditorLibrary.FPS).ToString("F1") + "(frame)"); } EditorGUILayout.Space(); _type_mask = (int)(EntitySpecies)EditorGUILayout.EnumMaskField("Type Mask", (EntitySpecies)_type_mask); _mourningborder = EditorGUILayout.Toggle("Mourningborder", _mourningborder); EditorGUILayout.Space(); _fov = EditorGUILayout.FloatField("FieldOfVeiw", _fov); _trigger = (CameraTrigger)EditorGUILayout.EnumPopup("Trigger", _trigger); EditorGUILayout.Space(); _override_bgm = EditorGUILayout.Toggle("Override BGM", _override_bgm); EditorGUILayout.Space(); UpdateScript(); GUILayout.Label("TimeLine:", _labelstyle); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); _type = (XClipType)EditorGUILayout.EnumPopup("Add Clip", _type); if (GUILayout.Button(_content_add, GUILayout.MaxWidth(25), GUILayout.MaxHeight(15))) { if (_camera != null && _name != null && _name.Length > 0) { XCutSceneTimelineWindow window = EditorWindow.GetWindow <XCutSceneTimelineWindow>(@"Timeline At:"); window._total_frame = _camera.length * XEditorLibrary.FPS; window._clip = null; } else { EditorUtility.DisplayDialog("Confirm your selection.", "Please select camera clip or name the cutscene", "Ok"); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); ActorList.Clear(); ActorList.Add("None"); foreach (XClip clip in _clips.Values) { if (clip.Valid) { if (_camera != null) { clip.TimeLineTotal = _camera.length * XEditorLibrary.FPS; clip.OnGUI(GetCurrentData()); if (clip.ClipType == XClipType.Actor || clip.ClipType == XClipType.Player) { int all = ActorList.FindAll(s => s == clip.Name).Count; if (all > 0) { ActorList.Add(clip.Name + " " + (all + 1)); } else { ActorList.Add(clip.Name); } } } } } EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Run")) { if (_name != null && _name.Length > 0 && _camera != null && !EditorApplication.isPlaying) { EditorApplication.ExecuteMenuItem("Edit/Play"); GameObject _cameraObject = GameObject.Find(@"Main Camera"); GameEntrance entrance = _cameraObject.GetComponent <GameEntrance>(); entrance.enabled = false; XCutSceneRunner runner = _cameraObject.AddComponent <XCutSceneRunner>(); _run_data = GetCurrentData(); runner.is_start_by_editor = true; runner.cut_scene_data = _run_data; } } if (GUILayout.Button("Pause")) { if (EditorApplication.isPlaying) { EditorApplication.isPaused = !EditorApplication.isPaused; } } if (GUILayout.Button("Quit")) { if (EditorApplication.isPlaying) { EditorApplication.isPlaying = false; } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Save")) { Save(); } if (GUILayout.Button("Open")) { _file = EditorUtility.OpenFilePanel("Select cutscene file", XEditorLibrary.Cts, "txt"); if (_file.Length != 0) { _open_scene = true; Load(XDataIO <XCutSceneData> .singleton.DeserializeData(_file.Substring(_file.IndexOf("Assets/")))); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndScrollView(); }