public static ClipData CreateClipData(AssetType type) { ClipData clip = null; switch (type) { case AssetType.Animation: clip = new AnimClipData(); break; case AssetType.BoneFx: clip = new BoneFxClipData(); break; case AssetType.PostProcess: clip = new PostprocessData(); break; case AssetType.SceneFx: clip = new SceneFxClipData(); break; case AssetType.LogicValue: clip = new LogicClipData(); break; default: Debug.Log("unknown clip " + type); break; } return(clip); }
private void Load(BoneFxClipData data) { var root = track.root; XBindTrack bt = root as XBindTrack; var seed = data.seed; if (bt) { var go = bt.bindObj; if (go != null && !string.IsNullOrEmpty(data.bone)) { var tf = go.transform.Find(data.bone); fx = XResources.LoadGameObject(data.prefab); fx.SetActive(false); path = data.prefab; if (fx) { fx.transform.parent = tf; fx.transform.localPosition = data.pos; fx.transform.localRotation = Quaternion.Euler(data.rot); fx.transform.localScale = data.scale; ps = fx.GetComponentsInChildren <ParticleSystem>(); for (int i = 0; i < ps.Length; i++) { ps[i].randomSeed = seed; ps[i].Stop(); } } } } }
private void AddClip(Object obj, float t) { BoneFxClipData data = new BoneFxClipData(); data.start = t; data.duration = 10; data.prefab = AssetDatabase.GetAssetPath(obj); data.seed = 0; data.scale = Vector3.one; var clip = track.BuildClip(data); (clip as XBoneFxClip).SetFx((GameObject)obj); track.AddClip(clip, data); }