using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEditor; using Raumgleiter.BaseRGDK; using Raumgleiter.BaseRGDK.JSON; namespace Raumgleiter.RGDKDevLab { public class MtexUI_003 : MonoBehaviour { MtexDownloadFunctions mtexDownloadFunctions = new MtexDownloadFunctions(); List TypeClassList; public GameObject GridLayout, myCanvas; public int TextSize=9; public GameObject ButtonPrefab01; public Text NumberOfMaterials; public List MatClassList; GameObject TypesGrid, MaterialsGrid, MaterialPreview; List Screens; /// Matrial and Texture private Material newMaterial; private Vector2 materialTiling = new Vector2(1f, 1f); private Texture newTexture, newBump, newNormal; private Dictionary urlVariabels = new Dictionary() { { "manufacturer_id ", 999999}, { "type_id", 999999 }, { "color_id", 999999}, {"per_page", 20} }; // Use this for initialization void Start() { StartCoroutine(GetTypes()); // create screens TypesGrid = MakeGridScreen("TypesGrid"); MaterialsGrid = MakeGridScreen("MaterialsGrid"); MaterialPreview = MakeGridScreen("MaterialsPreview"); Screens = new List() { TypesGrid, MaterialsGrid, MaterialPreview }; } private GameObject MakeGridScreen(string Name) { var MyGridObjectInstance = Instantiate(GridLayout, myCanvas.transform); MyGridObjectInstance.name = Name; MyGridObjectInstance.SetActive(false); //MyGridObjectInstance.SetActive(true); return MyGridObjectInstance; } private void ToggleScreens(GameObject CurrentScreen) { for (int i = 0; i < Screens.Count; i++) { Screens[i].SetActive(false); } CurrentScreen.SetActive(true); } private void CreateTypesPreview() { // activate Type grid ToggleScreens(TypesGrid); // populate grid with types for (int i = 0; i < TypeClassList.Count; i++) { var ButtonName = TypeClassList[i].name; Button myButton = AddButton(TypesGrid, ButtonPrefab01, ButtonName); myButton.onClick.AddListener(delegate { StartCoroutine(GetMaterials(ButtonName)); }); } } private void CreateMaterialsPreview() { // activate grid ToggleScreens(MaterialsGrid); //populate grid for (int i = 0; i < MatClassList.Count; i++) { var ButtonName = MatClassList[i].name; Button myButton = AddButton(MaterialsGrid, ButtonPrefab01, ButtonName); myButton.onClick.AddListener(delegate { StartCoroutine(GetMaterial(ButtonName)); }); } } private Button AddButton(GameObject ParentGO, GameObject ButtonPrefab, string ButtonName) { var ButtonInstance = Instantiate(ButtonPrefab, new Vector3(0, 0, 0), Quaternion.identity); ButtonInstance.transform.SetParent(ParentGO.transform); ButtonInstance.name = "button_" + ButtonName; ButtonInstance.GetComponentInChildren().text = ButtonName; Button b = ButtonInstance.GetComponent