private void AssignSortingLayerNameTo(GameObject gameObject, XElement xml, ImportBehaviour importComponent) { string sortingLayer = ImportUtils.GetAttributeAsString(xml, "sortingLayerName", ""); if (String.IsNullOrEmpty(sortingLayer)) { return; } Renderer renderer = gameObject.GetComponent <Renderer>(); if (renderer == null) { importComponent.RecordWarning("Sorting Layer '{0}' cannot be assigned on '{1}' without a RendererComponent", sortingLayer, gameObject.name); return; } if (!SortingLayerExposedEditor.GetSortingLayerNames().Contains(sortingLayer)) { importComponent.RecordError("Sorting Layer \"{0}\" does not exist. Check your Project Settings -> Tags and Layers", sortingLayer); renderer.sortingLayerName = "Default"; } renderer.sortingLayerName = sortingLayer; }
private GameObject CreateCopyFromMeshObj(string copyFromName, ImportBehaviour importComponent) { importComponent.RecordWarning("Deprecated import action. Re-export map '{0}' with newer version of Tiled2Unity.", importComponent.MapName); // Find a matching game object within the mesh object and "copy" it // (In Unity terms, the Instantiated object is a copy) string objPath = GetMeshAssetPath(importComponent.MapName, importComponent.MapName); UnityEngine.Object[] objects = AssetDatabase.LoadAllAssetsAtPath(objPath); foreach (var obj in objects) { if (obj.name != copyFromName) { continue; } // We have a match but is it a game object? GameObject gameObj = GameObject.Instantiate(obj) as GameObject; if (gameObj == null) { continue; } // Reset the name so it is not decorated by the Instantiate call gameObj.name = obj.name; return(gameObj); } // If we're here then there's an error with the mesh name importComponent.RecordError("No mesh named '{0}' to copy from.\nXml File: {1}\nObject: {2}", copyFromName, importComponent.Tiled2UnityXmlPath, objPath); return(null); }
private void AssignSortingOrderTo(GameObject gameObject, XElement xml, ImportBehaviour importComponent) { if (xml.Attribute("sortingOrder") == null) { return; } int sortingOrder = ImportUtils.GetAttributeAsInt(xml, "sortingOrder"); Renderer renderer = gameObject.GetComponent <Renderer>(); if (renderer == null) { importComponent.RecordWarning("Sorting Order '{0}' cannot be assigned on '{1}' without a RendererComponent", sortingOrder, gameObject.name); return; } renderer.sortingOrder = sortingOrder; }