public XClip AddClip(XCutSceneClip clip) { XClip xclip = null; switch (clip.Type) { case XClipType.Actor: xclip = new XActorClip(clip); break; case XClipType.Player: xclip = new XPlayerClip(clip); break; case XClipType.Fx: xclip = new XFxClip(clip); break; case XClipType.Audio: xclip = new XAudioClip(clip); break; case XClipType.SubTitle: xclip = new XSubTitleClip(clip); break; case XClipType.Slash: xclip = new XSlashClip(clip); break; } if (xclip != null) { xclip.Flush(); _clips.Add(xclip, xclip); } return(xclip); }
public void RemoveClip(XClip clip) { int idx = _clips.IndexOfValue(clip); if (idx >= 0 && idx < _clips.Count) { _clips.RemoveAt(idx); } }
public override void Dump() { _data.Fx = XClip.LocateRes(_fx); if (_bone != null) { _data.Bone = XClip.LocateBone(_bone); } _data.BindIdx = _bind_idx - 1; }
protected override void OnInnerGUI(XCutSceneData data) { _bind_idx = CutSceneWindow.ActorList.FindIndex(FindActor); _fx = EditorGUILayout.ObjectField("Fx Object", _fx, typeof(GameObject), true) as GameObject; _bind_idx = EditorGUILayout.Popup("Bind To", _bind_idx, CutSceneWindow.ActorList.ToArray()); EditorGUILayout.Space(); if (_bind_idx > 0) { EditorGUI.BeginChangeCheck(); _bone = EditorGUILayout.ObjectField("Bind To", _bone, typeof(GameObject), true) as GameObject; if (EditorGUI.EndChangeCheck() || !_bone_refresh) { if (_bone != null || !_bone_refresh) { if (_bone != null) { _bone_refresh = true; } if (_bone_refresh) { _data.Bone = XClip.LocateBone(_bone); } } else { _data.Bone = null; } } if (_data.Bone != null && _data.Bone.Length > 0) { EditorGUILayout.LabelField("Bone", _data.Bone.Substring(_data.Bone.LastIndexOf("/") + 1)); } _data.Follow = EditorGUILayout.Toggle("Follow", _data.Follow); _data.Scale = EditorGUILayout.FloatField("Scale", _data.Scale); } else { _bone = null; _data.Bone = null; Vector3 Appear = Vector3FieldEx("Appear At", new Vector3(_data.AppearX, _data.AppearY, _data.AppearZ), ref _appear_fold, false, false); _data.AppearX = Appear.x; _data.AppearY = Appear.y; _data.AppearZ = Appear.z; Vector3 Face = XCommon.singleton.FloatToAngle(_data.Face); _data.Face = XCommon.singleton.AngleToFloat(Vector3FieldEx("Face To", Face, ref _face_fold, true, false)); } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); _data.Destroy_Delay = EditorGUILayout.FloatField("Delay Destroy", _data.Destroy_Delay); GUILayout.Label("(s)"); EditorGUILayout.EndHorizontal(); _bind_prefab = CutSceneWindow.ActorList[_bind_idx]; }
XCutSceneData GetCurrentData() { if (_name == null || _name.Length == 0 || _camera == null) { return(null); } XCutSceneData data = new XCutSceneData(); data.CameraClip = XClip.LocateRes(_camera); data.Name = _name; data.Script = _script; data.Scene = _scene; data.TotalFrame = _camera.length * XEditorLibrary.FPS; data.TypeMask = _type_mask; data.AutoEnd = _auto_end; data.GeneralShow = _general_show; data.GeneralBigGuy = _general_bigguy; data.OverrideBGM = _override_bgm; data.Mourningborder = _mourningborder; data.FieldOfView = _fov; data.Length = _length; data.Trigger = _trigger.ToString(); foreach (XClip clip in _clips.Values) { if (clip.Valid) { if (_camera != null) { clip.Dump(); switch (clip.ClipType) { case XClipType.Actor: data.Actors.Add(clip.CutSceneClip as XActorDataClip); break; case XClipType.Player: data.Player.Add(clip.CutSceneClip as XPlayerDataClip); break; case XClipType.Audio: data.Audios.Add(clip.CutSceneClip as XAudioDataClip); break; case XClipType.Fx: data.Fxs.Add(clip.CutSceneClip as XFxDataClip); break; case XClipType.SubTitle: data.SubTitle.Add(clip.CutSceneClip as XSubTitleDataClip); break; case XClipType.Slash: data.Slash.Add(clip.CutSceneClip as XSlashDataClip); break; } } } } return(data); }
void OnDestroy() { if (_ok) { CutSceneWindow window = GetWindow <CutSceneWindow>(@"Cut Scene"); if (_clip != null) { window.RemoveClip(_clip); _clip.TimeLine = _play_at_frame; window.AddClip(_clip); } else { window.AddClip(_play_at_frame); } window.Focus(); } _clip = null; }
public void AddClip(XClip clip) { _clips.Add(clip, clip); }
void InnerLoad(XCutSceneData data) { _run_data = data; _name = data.Name; _script = data.Script; _scene = data.Scene; _camera = Resources.Load(data.CameraClip, typeof(AnimationClip)) as AnimationClip; _type_mask = data.TypeMask; _auto_end = data.AutoEnd; _general_show = data.GeneralShow; _general_bigguy = data.GeneralBigGuy; _override_bgm = data.OverrideBGM; _mourningborder = data.Mourningborder; _fov = data.FieldOfView; _length = data.Length; _trigger = (CameraTrigger)Enum.Parse(typeof(CameraTrigger), data.Trigger); _clips.Clear(); ActorList.Clear(); ActorList.Add("None"); foreach (XActorDataClip clip in data.Actors) { TimeChecker(clip, data); XClip xclip = AddClip(clip); ActorList.Add(xclip.Name); } foreach (XPlayerDataClip clip in data.Player) { TimeChecker(clip, data); XClip xclip = AddClip(clip); ActorList.Add(xclip.Name); } foreach (XFxDataClip clip in data.Fxs) { TimeChecker(clip, data); AddClip(clip); } foreach (XAudioDataClip clip in data.Audios) { TimeChecker(clip, data); AddClip(clip); } foreach (XSubTitleDataClip clip in data.SubTitle) { TimeChecker(clip, data); AddClip(clip); } foreach (XSlashDataClip clip in data.Slash) { TimeChecker(clip, data); AddClip(clip); } if (_open_scene && _scene != null && _scene.Length != 0) { Scene scene = EditorSceneManager.GetActiveScene(); if (scene.name.Length > 0 && !EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo()) { return; } else { EditorSceneManager.OpenScene(_scene + ".unity"); } _open_scene = false; } }