private void OnClickRunBtn() { var setting = new ITU_RenderSetting { pixelsPreUnit = pixelPerUnit, renderChunkSize = chunkSize, defaultMaterial = tileMaterial == null ? new Material(Shader.Find("Unlit/Transparent")) : tileMaterial, isMakeAllGameObjectStatic = isStatic, isCreateInstanceOnSceneWhenFinish = createInstance, defaultSortLayerName = sortLayerName }; var savePath = saveProjectToPath.Substring(6); //Remove first "Assets" setting.SetSaveToFolder(savePath, Path.GetFileNameWithoutExtension(tmxFilePath)); if (ignoreLayers != null && ignoreLayers.Length > 0) { foreach (var ignoreLayer in ignoreLayers) { setting.ignoreRenderLayerNameList.Add(ignoreLayer); } } var itu = new ITU_Facade(); itu.LoadTxmFile(tmxFilePath); itu.SetRenderSetting(setting); itu.RenderMapToCurrentScene(); }
public override void OnClickRunBtn() { var itu = new ITU_Facade(); //Attach extension first var extNav = new ITU_GenNavMeshBlockExtension { navTempBlockMat = navTempBlockMaterial }; itu.AddExtensions(extNav); var extPrefab = new ITU_ReplaceWithPrefabExtension(); extPrefab.PrefabBoxDeco = PrefabBoxDeco; extPrefab.PrefabSupportDeco = PrefabSupportDeco; itu.AddExtensions(extPrefab); //Load Txm map itu.LoadTxmFile(Application.dataPath + txmFilePath); //Render var rednerSetting = new ITU_RenderSetting(); rednerSetting.SetSaveToFolder(saveProjectToPath, Path.GetFileNameWithoutExtension(txmFilePath)); rednerSetting.ignoreRenderLayerNameList.Add("Deco"); itu.SetRenderSetting(rednerSetting); itu.RenderMapToCurrentScene(); //Handle Property itu.HandleMapPropertyAndObject(); }
public void InitRenderProperty(ITU_TmxLayerMeta _layerMeta, ITU_TmxRootMeta _mapMeta, GameObject _mapRootGo, ITU_RenderSetting _renderSetting, float _offsetZ, List <ITU_ExtensionBase> _allExtensionList) { mLayerMeta = _layerMeta; mMapMeta = _mapMeta; mRenderSetting = _renderSetting; mAllExtensionList = _allExtensionList; mLayerRootGo = new GameObject(mLayerMeta.layerName); mLayerRootGo.transform.parent = _mapRootGo.transform; mLayerRootGo.transform.localPosition = new Vector3(mLayerMeta.offsetX / mRenderSetting.pixelsPreUnit, -mLayerMeta.offsetY / mRenderSetting.pixelsPreUnit, _offsetZ); DoInitRenderProperty(); }
public override void OnClickRunBtn() { var setting = new ITU_RenderSetting(); setting.SetSaveToFolder(saveProjectToPath, Path.GetFileNameWithoutExtension(txmFilePath)); var itu = new ITU_Facade(); //Attach extension first itu.AddExtensions(new ITU_ReadTxmMapInfoExtension()); //Load Txm map itu.LoadTxmFile(Application.dataPath + txmFilePath); //Render itu.SetRenderSetting(setting); itu.RenderMapToCurrentScene(); }
public void RenderMapToCurrentScene() { if (mMapMeta == null) { Debug.LogError("ITU_Facade not load any map, please call LoadTxmFile function first"); return; } try { if (mRenderSetting == null) { Debug.LogWarning("not set rendering setting , use default rending setting inside"); mRenderSetting = new ITU_RenderSetting(); mRenderSetting.SetSaveToFolder("/ITU_DefaultProject", mMapMeta.fileName); } if (mRenderSetting.renderChunkSize <= 0) { mRenderSetting.renderChunkSize = 10; Debug.LogWarning("render setting -> renderChunkSize size <=0 set as default value 10"); } if (mRenderSetting.pixelsPreUnit <= 0) { mRenderSetting.pixelsPreUnit = 100; Debug.LogWarning("render setting -> pixelsPreUnit unit <=0 set as default value 100"); } if (mMapMeta.orientation != ITU_TmxRootMeta.ORIENTAION_STAGGERED && mMapMeta.orientation != ITU_TmxRootMeta.ORIENTATION_ISOMETRIC) { Debug.LogError(string.Format("Can't render map {0}, beacuse is not Isometric or Staggered. ITU only support those two type right now :( ", mMapMeta.fileName)); return; } if (SortingLayer.NameToID(mRenderSetting.defaultSortLayerName) == 0) { foreach (var layerMeta in mMapMeta.layerList) { var layerName = layerMeta.layerName; string sortLayerName; var isFound = false; if (mRenderSetting.customSortLayerDic.TryGetValue(layerName, out sortLayerName)) { if (SortingLayer.NameToID(sortLayerName) != 0) { isFound = true; } } if (!isFound) { Debug.LogError(string.Format( "Can't find default sort layer <color=red> {1} </color> and no sortLayer define for Tiled layer <color=red> {0} </color>," + "please first define it in <color=red>Edit -> Project Settings -> Tags and Layers</color> " + "check the document under $ITU_Plugin_Folder/Document if you need more help", layerName, mRenderSetting.defaultSortLayerName)); return; } } } mAllExtensionList.ForEach(x => { x.SetRenderSetting(mRenderSetting); x.SetTmxMapMeta(mMapMeta); }); var render = new ITU_TmxRender(); render.InitTxmRender(mMapMeta, mRenderSetting, mAllExtensionList); mMapMeta.tilsetList.ForEach(tileset => { if (!tileset.isUesdInRender || tileset.isImageCollectionAndNotRender) { return; } Material matTemplate; if (!mRenderSetting.tilesetMaterials.TryGetValue(tileset.name, out matTemplate)) { matTemplate = mRenderSetting.defaultMaterial; } var mat = ITU_FIleUtils.SaveTilsetImageAndMaterial(tileset, matTemplate, mRenderSetting.imgSaveToPath, mRenderSetting.materailSaveToPath); mRenderSetting.tilesetMaterials.Add(tileset.name, mat); }); mAllExtensionList.ForEach(x => x.OnRenderMapProcessBegin()); var go = render.RenderTxmToScene(); mAllExtensionList.ForEach(x => x.OnRenderMapProcessFinish(go)); //Save Mesh render.SaveMesh(mRenderSetting.meshSaveToPath, mRenderSetting.isDeleteAllMeshUnderFolderFirst); if (mRenderSetting.isMakeAllGameObjectStatic) { render.MakeAllStatic(); } //Save Prefab var prefab = render.SavePrefab(mRenderSetting.prefabSaveToPath); //Delte templet go GameObject.DestroyImmediate(go); if (mRenderSetting.isCreateInstanceOnSceneWhenFinish) { PrefabUtility.InstantiatePrefab(prefab); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } catch (Exception _e) { var msg = "Oops ,seemed there have been some error when you run ITU, if you need some help you can contact me via [email protected]"; Debug.LogError(msg); Debug.LogError(_e); return; } Debug.Log(string.Format("<color=green>ITU import {0} succeed! </color>", mMapMeta.fileName)); }
public void SetRenderSetting(ITU_RenderSetting _setting) { mRenderSetting = _setting; }