Ejemplo n.º 1
0
 private async void OnEnable()
 {
     _displaying = true;
     await SerializeILTypeInstance.OnEnable(_fadeGroup, () =>
     {
         if (_displaying)
         {
             Repaint();
         }
     });
 }
Ejemplo n.º 2
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();
        MonoBehaviourAdapter.Adaptor clr = target as MonoBehaviourAdapter.Adaptor;
        if (clr is null)
        {
            return;
        }

        var instance = clr.ILInstance;

        if (instance != null)
        {
            EditorGUILayout.LabelField("Script", clr.ILInstance.Type.Name);
            SerializeILTypeInstance.SerializeJBehaviourType(_fadeGroup, instance);

            int index = 0;
            foreach (var i in instance.Type.FieldMapping)
            {
                //这里是取的所有字段,没有处理不是public的
                var type    = instance.Type.FieldTypes[index];
                var cType   = type.TypeForCLR;
                var objName = i.Key;
                GUI.enabled = true;
                index++;

                if (SerializeILTypeInstance.NeedToHide(instance, objName))
                {
                    continue;
                }

                foreach (var method in SerializeILTypeInstance.GetSerializeMethods())
                {
                    System.Object[] parameters = { _fadeGroup, cType, type, instance, i, objName };
                    var             result     = method.Value.Invoke(null, parameters);
                    if ((bool)result)
                    {
                        break;
                    }

                    if (method.Key == 0)
                    {
                        EditorGUILayout.LabelField(objName, "(null)");
                    }
                }
            }
        }
        // 应用属性修改
        serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 3
0
 private void OnDisable()
 {
     SerializeILTypeInstance.OnDisable(_fadeGroup, Repaint);
 }
Ejemplo n.º 4
0
 private void OnDestroy()
 {
     SerializeILTypeInstance.OnDestroy(ref _displaying);
 }