public void SaveCraft(string newFilePath = null) { var textureManager = TextureBrowser.GetFirstInstance(); if (newFilePath != null) { FilePath = newFilePath; } var craft = new CraftState() { CraftScale = transform.localScale.x, RootPositionX = transform.position.x, RootPositionY = transform.position.y, RootPositionZ = transform.position.z, RootColor = ColorHexConverter.RGB_To_Hex(renderer.material.color), RootTexture = textureManager.GetTextureIndex(renderer.material.mainTexture), ChildrenLocalPosX = new float[transform.childCount], ChildrenLocalPosY = new float[transform.childCount], ChildrenLocalPosZ = new float[transform.childCount], ChildrenColors = new string[transform.childCount], ChildrensTextures = new int[transform.childCount] }; for (int i = 0; i < transform.childCount; i++) { var child = transform.GetChild(i); craft.ChildrenLocalPosX[i] = child.localPosition.x; craft.ChildrenLocalPosY[i] = child.localPosition.y; craft.ChildrenLocalPosZ[i] = child.localPosition.z; craft.ChildrenColors[i] = ColorHexConverter.RGB_To_Hex(child.renderer.material.color); craft.ChildrensTextures[i] = textureManager.GetTextureIndex(child.renderer.material.mainTexture); } CraftState.SerializeState(craft, FilePath); }
public bool LoadCraft(string newFilePath) { var textureManager = TextureBrowser.GetFirstInstance(); if (newFilePath != FilePath) { FilePath = newFilePath; } Debug.Log(FilePath); CraftState craft = null; try { craft = CraftState.DeserializeState(FilePath); } catch { notification.ShowNotification("Unable to load the geometry. \nThe file might be corrupted."); return(false); } for (int i = 0; i < transform.childCount; i++) { Destroy(transform.GetChild(i).gameObject); } transform.localScale = new Vector3(craft.CraftScale, craft.CraftScale, craft.CraftScale); renderer.material.color = ColorHexConverter.HexToRGB(craft.RootColor); if (craft.RootTexture == 0) { renderer.material.mainTexture = null; } else { renderer.material.mainTexture = textureManager.GetTextureByIndex(craft.RootTexture); } AddSpawnEffect(gameObject); for (int i = 0; i < craft.ChildrenColors.Length; i++) { var child = Instantiate(Resources.Load(childCubePrefabName), transform.position, transform.rotation) as GameObject; child.renderer.material = new Material(sourceMaterial); child.transform.parent = transform; child.transform.localScale = new Vector3(1, 1, 1); child.transform.localPosition = new Vector3(craft.ChildrenLocalPosX[i], craft.ChildrenLocalPosY[i], craft.ChildrenLocalPosZ[i]); child.renderer.material.color = ColorHexConverter.HexToRGB(craft.ChildrenColors[i]); if (craft.ChildrensTextures[i] == 0) { child.renderer.material.mainTexture = null; } else { child.renderer.material.mainTexture = textureManager.GetTextureByIndex(craft.ChildrensTextures[i]); } AddSpawnEffect(child); } return(true); }
private void BrowseButtonClicked(object sender, EventArgs e) { if (DocumentManager.CurrentDocument == null) return; using (var tb = new TextureBrowser()) { tb.SetTextureList(DocumentManager.CurrentDocument.TextureCollection.GetAllItems()); tb.ShowDialog(); if (tb.SelectedTexture != null) { Mediator.Publish(EditorMediator.TextureSelected, tb.SelectedTexture); } } }
private void OpenModelBrowser(object sender, EventArgs e) { using (var tb = new TextureBrowser()) { tb.SetTextureList(GetTextureList()); tb.SetSelectedTextures(GetSelectedTextures()); tb.SetFilterText(GetFilterText()); tb.ShowDialog(); if (tb.SelectedTexture != null) { _textBox.Text = tb.SelectedTexture.Name; } } }
private void BrowseButtonClicked(object sender, EventArgs e) { if (DocumentManager.CurrentDocument == null) { return; } using (var tb = new TextureBrowser()) { tb.SetTextureList(DocumentManager.CurrentDocument.TextureCollection.GetAllBrowsableItems()); tb.ShowDialog(); if (tb.SelectedTexture != null) { Mediator.Publish(EditorMediator.TextureSelected, tb.SelectedTexture); } } }
private void BrowseButtonClicked(object sender, EventArgs e) { using (var browser = new TextureBrowser()) { browser.SetTextureList(Document.TextureCollection.GetAllBrowsableItems()); browser.ShowDialog(); if (browser.SelectedTexture == null) { return; } Mediator.Publish(EditorMediator.TextureSelected, browser.SelectedTexture); if (Sledge.Settings.Select.ApplyTextureImmediately) { ApplyButtonClicked(sender, e); } } }
void Awake() { if (firstInstance == null) { firstInstance = this; } for (int i = 0; i < defaultTextures.Length; i++) { allTextures.Add(defaultTextures[i]); } LoadExternalTextures(); if (allTextures.Count < texturesDisplay.Length) { for (int i = allTextures.Count; i < texturesDisplay.Length; i++) { texturesDisplay[i].gameObject.SetActive(false); } for (int i = 0; i < allTextures.Count; i++) { texturesDisplay[i].texture = allTextures.ElementAt(i); } lastDisplayedTexture = allTextures.Count - 1; PreviousPageAvailable = false; NextPageAvailable = false; } else { int i = 0; while (i < texturesDisplay.Length) { texturesDisplay[i].texture = allTextures.ElementAt(i); i++; } lastDisplayedTexture = i - 1; PreviousPageAvailable = false; NextPageAvailable = true; } transform.parent = textureButton; gameObject.SetActive(false); }
static public void ShowTextreBrower() { TextureBrowser.ShowWindow(); }
public static void ShowWindow() { TextureBrowser instance = (TextureBrowser)EditorWindow.GetWindow(typeof(TextureBrowser));//很遗憾,窗口关闭的时候instance就会为null instance.minSize = new Vector2(750, 300.0f); instance.titleContent = new GUIContent("贴图浏览器"); instance.m_infos.Clear(); foreach (string o in Selection.assetGUIDs) { string path = AssetDatabase.GUIDToAssetPath(o); if (string.IsNullOrEmpty(path)) { continue; } // 是个文件 if (File.Exists(path)) { TextureInfo info = TextureInfo.Create(path); if (info != null) { instance.m_infos.Add(info); } } else { path = path.Substring(7);//把asset/去掉 List <string> files = Util.GetAllFileList(Application.dataPath + "/" + path, "Assets/" + path + "/"); foreach (string assetPath in files) { TextureInfo info = TextureInfo.Create(assetPath); if (info != null) { instance.m_infos.Add(info); } } } } instance.m_sizeIdx.Clear(); instance.m_textureTypeToggle.Clear(); instance.m_typeToggle.Clear(); foreach (var info in instance.m_infos) { if (instance.m_sizeIdx.ContainsKey(info.sizeMax)) { instance.m_sizeIdx[info.sizeMax] += 1; } else { instance.m_sizeIdx[info.sizeMax] = 1; } instance.m_textureTypeToggle[(int)info.texImporter.textureType] = true; instance.m_typeToggle[(int)info.type] = true; } instance.m_sizeToggle.Clear(); foreach (var a in instance.m_sizeIdx) { instance.m_sizeToggle[a.Key] = true; } //排序 instance.m_infos.SortEx((TextureInfo a, TextureInfo b) => a.sizeMax.CompareTo(b.sizeMax) * -1); }