public MaterialGlobalInfos( AssemblyDocument document, Material material, List <ComponentOccurrence> materialOccurrences) { MassProperties asmMassProperties = document.ComponentDefinition.MassProperties; Material = material; GlobalInfos = new MaterialInfos(material); BreakDownInfos = new Dictionary <ComponentOccurrence, MaterialInfos>(); string docVolumeUnits = GetDocVolumeUnits(document as Document, false); string dbVolumeUnits = GetDbVolumeUnits(document as Document, false); foreach (ComponentOccurrence occurrence in materialOccurrences) { MaterialInfos materialInfos = new MaterialInfos(material); //Compute percentage first, so no need to convert in doc units first materialInfos.MassPercentage = occurrence.MassProperties.Mass * 100.0 / asmMassProperties.Mass; materialInfos.DbMass = occurrence.MassProperties.Mass; materialInfos.Volume = document.UnitsOfMeasure.ConvertUnits( occurrence.MassProperties.Volume, dbVolumeUnits, docVolumeUnits); materialInfos.Mass = document.UnitsOfMeasure.ConvertUnits( occurrence.MassProperties.Mass, UnitsTypeEnum.kDatabaseMassUnits, UnitsTypeEnum.kDefaultDisplayMassUnits); BreakDownInfos.Add(occurrence, materialInfos); //Add to global, database value GlobalInfos.DbMass += materialInfos.DbMass; GlobalInfos.Volume += occurrence.MassProperties.Volume; GlobalInfos.Mass += occurrence.MassProperties.Mass; } //Compute percentage first, so no need to convert in doc units first GlobalInfos.MassPercentage = GlobalInfos.Mass * 100.0 / asmMassProperties.Mass; //then convert to doc units GlobalInfos.Volume = document.UnitsOfMeasure.ConvertUnits( GlobalInfos.Volume, dbVolumeUnits, docVolumeUnits); GlobalInfos.Mass = document.UnitsOfMeasure.ConvertUnits( GlobalInfos.Mass, UnitsTypeEnum.kDatabaseMassUnits, UnitsTypeEnum.kDefaultDisplayMassUnits); }
private void GetMaterials() { List <MaterialPropertyInfo> materialsNames = new List <MaterialPropertyInfo> { new MaterialPropertyInfo("Custom/LaserCut/CarPaint", "carpaint", 5, -1, -1), new MaterialPropertyInfo("Custom/LaserCut/CarWindow", "carwindow", -1, 218, 219), new MaterialPropertyInfo("Custom/Reflective/Bump Glow LaserCut", "wheel", 5, 218, 255), new MaterialPropertyInfo("Custom/LaserCut/CarPaintBump", "carpaintbump", 5, 218, -1), new MaterialPropertyInfo("Custom/Reflective/Bump Glow Interceptor Special", "interceptor", 5, 218, 255), new MaterialPropertyInfo("Custom/LaserCut/CarWindowTrans2Sided", "transparentglow", -1, 218, 219) }; foreach (var c in G.Sys.ProfileManager_.carInfos_) { var prefab = c.prefabs_.carPrefab_; foreach (var renderer in prefab.GetComponentsInChildren <Renderer>()) { foreach (var mat in renderer.materials) { foreach (var key in materialsNames) { if (materials.ContainsKey(key.name)) { continue; } if (mat.shader.name == key.shaderName) { var materialInfos = new MaterialInfos { material = mat, diffuseIndex = key.diffuseIndex, normalIndex = key.normalIndex, emitIndex = key.emitIndex }; materials.Add(key.name, materialInfos); } } } } } foreach (var mat in materialsNames) { if (!materials.ContainsKey(mat.name)) { Mod.Instance.Errors.Add("Can't find the material: " + mat.name + " - shader: " + mat.shaderName); } } materials.Add("donotreplace", new MaterialInfos()); }
protected override void Awake() { base.Awake(); _isForcus = false; Util.SetRootContentSize(GetComponent <UIRoot>(), App.SCREEN_RESOLUTION); Util.FindParentToChild(ref _uiPanel, base.transform, "Panel"); Util.FindParentToChild(ref _uiHeader, _uiPanel.transform, "Header"); _uiHeader.transform.localPosition = _vHeaderPos[0]; Util.FindParentToChild(ref _uiFrame, _uiPanel.transform, "Frame"); _uiFrame.transform.localPosition = _vFramePos[0]; _clsCircles = new Circles(_uiPanel.transform); _clsCircles.circleButton.onClick = Util.CreateEventDelegateList(this, "onCircleBtnClick", null); _clsAdmiralInfo = new AdmiralInfos(_uiHeader.transform); _clsMaterialInfo = new MaterialInfos(_uiHeader.transform); _clsCam = new Generics.InnerCamera(base.transform.FindChild("FrameCamera")); _clsDateTime = new DateTime(_uiPanel.transform.FindChild("Frame")); }
private void Load_lsv_MaterialInfo() { this.lsv_MaterialInfo.Items.Clear(); int seq = 1; foreach (var materialtemp in MaterialInfos.GetMaterialInfosList()) { ListViewItem materialItem = new ListViewItem(); materialItem.Text = (seq++).ToString(); materialItem.SubItems.Add(materialtemp.MaterialNo.Trim()); materialItem.SubItems.Add(materialtemp.MaterialName.Trim()); materialItem.SubItems.Add(materialtemp.Position.ToString()); materialItem.SubItems.Add(materialtemp.CountPerBox.ToString()); materialItem.SubItems.Add(materialtemp.UsageTimePerBox.ToString()); this.lsv_MaterialInfo.Items.Add(materialItem); } }
public static void ExportFbx2GLTF() { MaterialInfos infos = new MaterialInfos() { materialInfos = new List <MaterialInfo>() }; var matFiles = GetMatFiles(); var t = Environment.CurrentDirectory + "/"; foreach (var item in matFiles) { var path = item.Replace(t, ""); var mat = AssetDatabase.LoadAssetAtPath <Material>(path); var materialInfo = GetCertainMaterialTexturePaths(mat); infos.materialInfos.Add(materialInfo); } var jsonContent = JsonUtility.ToJson(infos, true); File.WriteAllText("Assets/BlockData/database_models_material.txt", jsonContent); EditorUtility.DisplayDialog("生成所有通用材质配置", "完成", "确定"); }