/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 . ĠSee ĠAUTHORS Ġfile . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . m br labs . m und us . editor . ui . modules . inspector . components Ċ Ċ import Ġcom . kot cr ab . vis . ui . widget . Vis Label Ċ import Ġcom . kot cr ab . vis . ui . widget . Vis Table Ċ import Ġcom . m br labs . m und us . commons . assets . Material Asset Ċ import Ġcom . m br labs . m und us . commons . scene 3 d . GameObject Ċ import Ġcom . m br labs . m und us . commons . scene 3 d . components . Component Ċ import Ġcom . m br labs . m und us . commons . scene 3 d . components . Model Component Ċ import Ġcom . m br labs . m und us . editor . ui . widgets . Material Widget Ċ Ċ /** Ċ Ġ* Ġ@ author ĠMar cus ĠBr um mer Ċ Ġ* Ġ@ version Ġ 2 1 - 0 1 - 2 0 1 6 Ċ Ġ*/ Ċ class ĠModel Component Widget ( model Component : ĠModel Component ) Ġ: ĠComponent Widget < Model Component >(" Model ĠComponent ", Ġmodel Component ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmaterial Container Ġ= ĠVis Table () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . component Ġ= Ġmodel Component ĊĠĠĠĠĠĠĠ Ġsetup UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcreate ĠModel Ġselect Ġdropdown ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add ( Vis Label (" Model ")). left (). row () ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add Separator (). pad Bottom ( 5 f ). row () ĊĠĠĠĠĠĠĠ Ġ// collapsible Content . add ( select Box ). expand X (). fill X (). row (); ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add ( Vis Label (" Model Ġasset : Ġ" Ġ+ Ġcomponent . model Asset . name )). grow (). pad Bottom ( 1 5 f ). row () ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġmaterials Ġfor Ġall Ġmodel Ġnodes ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add ( Vis Label (" Materials ")). expand X (). fill X (). left (). pad Bottom ( 3 f ). pad Top ( 3 f ). row () ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add Separator (). row () ĊĊĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= ĠVis Label () ĊĠĠĠĠĠĠĠ Ġlabel . set Wrap ( true ) ĊĠĠĠĠĠĠĠ Ġlabel . setText (" Here Ġyou Ġchange Ġthe Ġmaterials Ġof Ġmodel Ġcomponents Ġindividually .\ n " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Mod if ing Ġthe Ġmaterial Ġwill Ġupdate Ġall Ġcomponents , Ġthat Ġuse Ġthat Ġmaterial .") ĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add ( label ). grow (). pad Bottom ( 1 0 f ). row () ĊĊĠĠĠĠĠĠĠ Ġcol lapsible Content . add ( material Container ). grow (). row () ĊĠĠĠĠĠĠĠ Ġbuild Materials () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Materials () Ġ{ ĊĠĠĠĠĠĠĠ Ġmaterial Container . clear () ĊĠĠĠĠĠĠĠ Ġfor Ġ( g 3 db Mat ID Ġin Ġcomponent . materials . keys ()) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmw Ġ= ĠMaterial Widget () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmw . mat Changed Listener Ġ= Ġobject : ĠMaterial Widget . Material Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmaterial Changed ( material Asset : ĠMaterial Asset ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . materials . put ( g 3 db Mat ID , Ġmaterial Asset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent . apply Materials () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmw . material Ġ= Ġcomponent . materials [ g 3 db Mat ID ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial Container . add ( mw ). grow (). pad Bottom ( 2 0 f ). row () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Values ( go : ĠGameObject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġgo . find Component ByType ( Component . Type . MODEL ) ĊĠĠĠĠĠĠĠ Ġif Ġ( c Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Ġ= Ġc Ġas ĠModel Component ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ