private void OnDetailsDatabinding(object sender, VirtualizingTreeViewItemDataBindingArgs e) { DetailPrototypeWrapper details = (DetailPrototypeWrapper)e.Item; RawImage image = e.ItemPresenter.GetComponentInChildren <RawImage>(); if (image != null) { if (image.texture != null && image.texture.name == "TemporaryPreview") { Destroy(image.texture); } if (details.Prototype.usePrototypeMesh && details.Prototype.prototype != null) { IResourcePreviewUtility previewUtil = IOC.Resolve <IResourcePreviewUtility>(); Texture2D texture = new Texture2D(1, 1, TextureFormat.ARGB32, true); texture.name = "TemporaryPreview"; texture.LoadImage(previewUtil.CreatePreviewData(details.Prototype.prototype)); image.texture = texture; } else { image.texture = details.Prototype.prototypeTexture; } } }
private void OnCreateDetail() { DetailPrototype[] oldDetails = TerrainData.detailPrototypes.ToArray(); DetailPrototype detail = new DetailPrototype(); detail.renderMode = DetailRenderMode.Grass; detail.dryColor = Color.white; detail.healthyColor = Color.white; List <DetailPrototype> newDetails = TerrainData.detailPrototypes.ToList(); newDetails.Add(detail); TerrainData.detailPrototypes = newDetails.ToArray(); DetailPrototypeWrapper wrapper = new DetailPrototypeWrapper(detail); m_detailsList.Add(wrapper); m_detailsList.SelectedItem = wrapper; RecordState(oldDetails); }