public IsoLayerModel FromLayer(Layer layer) { IsoLayerModel model = new IsoLayerModel(); model.layerId = layer.layerID; model.layerName = layer.gameObject.name; model.visible = (layer.gameObject.activeSelf) ? true : false; for (int i = 0; i < layer.isoFactories.Count; i++) { model.FactoryModel.Add(new IsoFactoryModel(layer.isoFactories[i])); } for (int i = 0; i < layer.transform.childCount; i++) { IsoObject obj = layer.transform.GetChild(i).GetComponent <IsoObject> (); if (obj != null) { IsoObjectModel objModel = new IsoObjectModel(); objModel = objModel.FromIsoObject(obj); model.objects.Add(objModel); } } return(model); }
void RenderObject(IsoObjectModel objModel, Layer layer) { GameObject obj = new GameObject("obj"); obj.transform.position = objModel.position; obj.transform.rotation = objModel.rotation; obj.transform.SetParent(layer.gameObject.transform); IsoObject isoObj = obj.AddComponent <IsoObject> (); isoObj.FilePath = objModel.ImgFilePath; isoObj.offset = objModel.offset; layer.AddPositionData(obj.transform.position, obj); // Read image; SpriteRenderer renderer = obj.AddComponent <SpriteRenderer> (); renderer.sortingOrder = objModel.SortingOrder; Sprite result = resources.Find(x => x.path == isoObj.FilePath).Sprite; result = Ultils.ChangeOffset(result, isoObj.offset); renderer.sprite = result; obj.AddComponent <PolygonCollider2D> (); }
// Convert from iso object to iso model. public IsoObjectModel FromIsoObject(IsoObject obj) { IsoObjectModel model = new IsoObjectModel(); model.position = obj.gameObject.transform.position; model.rotation = obj.gameObject.transform.rotation; SpriteRenderer objRenderer = obj.GetComponent <SpriteRenderer> (); model.SortingOrder = objRenderer.sortingOrder; model.ImgFilePath = obj.FilePath; model.offset = obj.offset; model.ImgFileName = Path.GetFileName(obj.FilePath); model.ImgFolderPath = Path.GetDirectoryName(obj.FilePath); return(model); }