Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
 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);
         }
     }
 }
Example #4
0
 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;
         }
     }
 }
Example #5
0
 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);
         }
     }
 }
Example #6
0
        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);
                }
            }
        }
Example #7
0
 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);
 }
Example #8
0
 static public void ShowTextreBrower()
 {
     TextureBrowser.ShowWindow();
 }
Example #9
0
 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;
         }
     }
 }
Example #10
0
    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);
    }