VR Development Framework
v 1.0.0
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Events Pages
override void AVR.UI.Link.AVRUI_Link_TMPDropdown.setup ( )
inlinevirtual

Method is run when the user selects a field in the inspector.

Implements AVR.UI.Link.AVRUI_Link.

Definition at line 18 of file AVRUI_Link_TMPDropdown.cs.

18  {
19  init();
20 
21  if(!target) return;
22 
23  System.Type field_type = null;
24  if(memberType==MemberType.FIELD) field_type = target.GetType().GetField(field).FieldType;
25  else field_type = target.GetType().GetProperty(field).PropertyType;
26 
27  object current_value = target.GetType().GetField(field).GetValue(target);
28  string current_name = System.Enum.GetName(field_type, current_value);
29 
30  string[] names = System.Enum.GetNames(field_type);
31 
32  input.options.Clear();
33  for (int i = 0; i < names.Length; i++)
34  {
35  input.options.Add(new TMPro.TMP_Dropdown.OptionData(names[i]));
36  if (names[i] == current_name) input.value = i;
37  }
38 
39  updateOutput();
40 
41  // Make sure we have the adequate persisten listeners by (possibly) removing and re-adding
42  #if UNITY_EDITOR
43  UnityEditor.Events.UnityEventTools.RemovePersistentListener(input.onValueChanged, updateValueListener);
44  UnityEditor.Events.UnityEventTools.AddPersistentListener(input.onValueChanged, updateValueListener);
45  #endif
46 
47  }