void DrawBaseVariable(GetVariableBase _base)
        {
            _base.getFrom = (GetFrom)UnityEditor.EditorGUILayout.EnumPopup("Source", _base.getFrom);
            if (_base.getFrom == GetFrom.GameObject)
            {
                _base.target = (GameObject)UnityEditor.EditorGUILayout.ObjectField("Target", _base.target, typeof(GameObject), true);

                if (_base.target != null)
                {
                    //Show MonoScript
                    var           monobehaviours      = _base.target.GetComponents <MonoBehaviour>().ToList();
                    int           monoIdx             = monobehaviours.IndexOf(_base.monoscript);
                    List <string> monobehaviourString = new List <string>();
                    for (int i = 0; i < monobehaviours.Count; i++)
                    {
                        monobehaviourString.Add("(" + i.ToString() + ")" + monobehaviours[i].ToString().Replace(_base.target.name, ""));
                    }
                    if (monobehaviourString.Count < 0)
                    {
                        monobehaviourString.Add("");
                    }
                    if (monoIdx < 0)
                    {
                        monoIdx = 0;
                    }
                    monoIdx          = UnityEditor.EditorGUILayout.Popup("Script", monoIdx, monobehaviourString.ToArray());
                    _base.monoscript = monobehaviours[monoIdx];
                }
            }
        }
Esempio n. 2
0
        public override void PropertyDrawer(FieldInfo field, DIVisualComponent comp)
        {
            EditorGUILayout.LabelField(field.Name, EditorStyles.boldLabel);
            GetVariableBase _base = field.GetValue(comp) as GetVariableBase;

            DrawBaseVariable(_base);
        }