void LoadedRsSegment(LevelSegment lseg, LevelSegmentMeta meta) { if (meta.state == LevelSegmentMeta.LoadState.loaded) { Log.Debug("ignore lated segment load. {0}", meta); return; } lseg = Instantiate(lseg); meta.state = LevelSegmentMeta.LoadState.loaded; lseg.gameObject.transform.position = meta.position; lseg.gameObject.transform.SetParent(copyParent); SegmentKV skv = new SegmentKV(); skv.level = lseg; skv.meta = meta; _loadedSegments.Add(skv); Log.Debug("LOAD SEGMENT:{0}", lseg); }
public void EdCollectEditorLevelData() { if (null == metas) { metas = new List <LevelSegmentMeta>(); } metas.Clear(); LevelSegment[] lsegs = EdGetCorespondingSegments(); if (null == lsegs) { Log.Debug(" no segments for level " + gameObject.name); return; } foreach (LevelSegment l in lsegs) { LevelSegmentMeta sm = new LevelSegmentMeta(); sm.position = l.gameObject.transform.position; string path = autoSavePrefabsFolder + "/" + GameObjectUtils.GetUniqNameByHierarchy(l.gameObject); //string path = AssetsUtils.GetPrefabsResourceRelativePathWithoutExtention (l.gameObject); if (string.IsNullOrEmpty(path)) { Log.Error("the segment {0} is not a prefabs yet.", l); continue; } sm.length = l.segmentLength; sm.prefPath = path; Log.Debug("{0} > {1}", l.gameObject.name, sm); metas.Add(sm); } metaCount = metas.Count; metas.Sort(CompareListByPosition); EdStore(); }
private static int CompareListByPosition(LevelSegmentMeta i1, LevelSegmentMeta i2) { return((i1.position.x).CompareTo(i2.position.x)); }