private void ElementClick() { Debug.Log("Click"); LoaderEntryData ld = EventSystem.current.currentSelectedGameObject.GetComponent <LoaderEntryData>(); //HACK: Handle internal case if (ld.rendererText.text == "Internal") { detailPanelImage.texture = new Texture2D(200, 200); detailPanelPath.text = ld.filenameText.text; detailPanelFilename.text = ld.filenameText.text; } else { detailPanelImage.texture = EnvConstants.externalRenderers .Find(renderer => renderer.isOwnedFiletype(ld.filepath)).loadWorkspacePreview(ld.filepath); detailPanelPath.text = ld.fileinfo.FullName; detailPanelFilename.text = ld.fileinfo.Name; } detailPanelOK.interactable = true; }
// Start is called before the first frame update void Start() { //Scan working dir var info = new DirectoryInfo(EnvConstants.WorkspacesPath); if (!info.Exists) { Debug.LogWarning("Workspaces path not found, skipping enumeration"); return; } var fileInfo = info.GetFiles(); foreach (var file in fileInfo) { availableFiles.Add(file); } foreach (var renderer in EnvConstants.externalRenderers) { handledFiles.AddRange(renderer.filterOwnWorkspaceFiles(availableFiles)); } //Add internal rendering file on top //List items GameObject intEntry = (GameObject)Instantiate(entryPrefab, contentTarget.transform); intEntry.GetComponent <Button>().onClick.AddListener(ElementClick); LoaderEntryData intdata = intEntry.GetComponent <LoaderEntryData>(); intdata.filenameText.text = "gears.fbx"; intdata.rendererText.text = "Internal"; intdata.pathText.text = ""; //Create objects per file int i = 0; foreach (var hf in handledFiles) { var file = hf; Texture tex = EnvConstants.externalRenderers.Find(renderer => renderer.isOwnedFiletype(file.Extension)).loadWorkspacePreview(file.FullName); //List items GameObject newEntry = (GameObject)Instantiate(entryPrefab, contentTarget.transform); newEntry.GetComponent <Button>().onClick.AddListener(ElementClick); LoaderEntryData data = newEntry.GetComponent <LoaderEntryData>(); data.filenameText.text = file.Name; data.rendererText.text = EnvConstants.externalRenderers.Find(renderer => renderer.isOwnedFiletype(file.Extension)) .rendererName(); data.pathText.text = file.FullName; data.itemImage.texture = tex; data.filepath = file.FullName; data.fileinfo = file; } //Add button events for OK buttons detailPanelOK.onClick.AddListener(DetailOKClick); detailPanelOKSaved.onClick.AddListener(DetailOKSavedClick); Debug.Log("file setup done: " + handledFiles.Count + " files"); }