Example #1
0
    override public void OnInspectorGUI()
    {
        //the target has been GC'd, so do nothing
        if (link.GetTarget() == null)
        {
            return;
        }

        GUILayout.Label(link.name, EditorStyles.boldLabel);

        EditorGUILayout.Separator();

        int memberCount = link.members.Count;

        for (int m = 0; m < memberCount; m++)
        {
            RXWatcherLinkMember member = link.members[m];

            object oldValue = member.GetValue();
            object newValue = null;

            if (member.memberType == FLOAT)
            {
                newValue = EditorGUILayout.FloatField(member.name, (float)oldValue);
            }
            else if (member.memberType == INT)
            {
                newValue = EditorGUILayout.IntField(member.name, (int)oldValue);
            }
            else if (member.memberType == STRING)
            {
                newValue = EditorGUILayout.TextField(member.name, (string)oldValue);
            }
            else if (member.memberType == COLOR)
            {
                newValue = EditorGUILayout.ColorField(member.name, (Color)oldValue);
            }
            else if (member.memberType == VECTOR2)
            {
                newValue = EditorGUILayout.Vector2Field(member.name, (Vector2)oldValue);
            }
            else if (member.memberType == BOOL)
            {
                newValue = EditorGUILayout.Toggle(member.name, (bool)oldValue);
            }

            if (newValue != null && !newValue.Equals(oldValue))
            {
                member.SetValue(newValue);
            }
        }
    }
Example #2
0
    private void SetupTarget()
    {
        object target     = _targetRef.Target;
        Type   targetType = _targetRef.Target.GetType();

        BindingFlags bindingFlags = BindingFlags.Public;

        if (target is Type)
        {
            bindingFlags |= BindingFlags.Static;
            targetType    = target as Type;
        }
        else
        {
            bindingFlags |= BindingFlags.Instance;
        }

        if (_shouldShowNonPublicMembers)
        {
            bindingFlags |= BindingFlags.NonPublic;
        }

        FieldInfo[]    fieldInfos    = targetType.GetFields(bindingFlags);
        PropertyInfo[] propertyInfos = targetType.GetProperties(bindingFlags);

        for (int f = 0; f < fieldInfos.Length; f++)
        {
            RXWatcherLinkMember member = new RXWatcherLinkMember(this, fieldInfos[f]);

            if (member.CheckIfValid())
            {
                _members.Add(member);
            }
        }

        for (int p = 0; p < propertyInfos.Length; p++)
        {
            RXWatcherLinkMember member = new RXWatcherLinkMember(this, propertyInfos[p]);

            if (member.CheckIfValid())
            {
                _members.Add(member);
            }
        }
    }
    private void SetupTarget()
    {
        object target = _targetRef.Target;
        Type targetType = _targetRef.Target.GetType();

        BindingFlags bindingFlags = BindingFlags.Public;

        if(target is Type)
        {
            bindingFlags |= BindingFlags.Static;
            targetType = target as Type;
        }
        else
        {
            bindingFlags |= BindingFlags.Instance;
        }

        if(_shouldShowNonPublicMembers)
        {
            bindingFlags |= BindingFlags.NonPublic;
        }

        FieldInfo[] fieldInfos = targetType.GetFields(bindingFlags);
        PropertyInfo[] propertyInfos = targetType.GetProperties(bindingFlags);

        for(int f = 0; f<fieldInfos.Length; f++)
        {
            RXWatcherLinkMember member = new RXWatcherLinkMember(this, fieldInfos[f]);

            if(member.CheckIfValid())
            {
                _members.Add(member);
            }
        }

        for(int p = 0; p<propertyInfos.Length; p++)
        {
            RXWatcherLinkMember member = new RXWatcherLinkMember(this, propertyInfos[p]);

            if(member.CheckIfValid())
            {
                _members.Add(member);
            }
        }
    }
Example #4
0
    override public void OnInspectorGUI()
    {
        //the target has been GC'd, so do nothing
        if (link.GetTarget() == null)
        {
            return;
        }

        GUILayout.Label(link.name, EditorStyles.boldLabel);

        EditorGUILayout.Separator();

        int memberCount = link.members.Count;

        for (int m = 0; m < memberCount; m++)
        {
            RXWatcherLinkMember member = link.members[m];

            object oldValue = member.GetValue();
            object newValue = null;

            if (member.memberType == FLOAT)
            {
                newValue = EditorGUILayout.FloatField(member.name, (float)oldValue);
            }
            else if (member.memberType == INT)
            {
                newValue = EditorGUILayout.IntField(member.name, (int)oldValue);
            }
            else if (member.memberType == STRING)
            {
                newValue = EditorGUILayout.TextField(member.name, (string)oldValue);
            }
            else if (member.memberType == COLOR)
            {
                newValue = EditorGUILayout.ColorField(member.name, (Color)oldValue);
            }
            else if (member.memberType == VECTOR2)
            {
                newValue = EditorGUILayout.Vector2Field(member.name, (Vector2)oldValue);
            }
            else if (member.memberType == BOOL)
            {
                newValue = EditorGUILayout.Toggle(member.name, (bool)oldValue);
            }

            if (newValue != null && !newValue.Equals(oldValue))
            {
                member.SetValue(newValue);
            }
        }

        EditorGUILayout.Separator();

        GUILayout.Label("Transform Hierarchy", EditorStyles.boldLabel);

        var node = link.GetTarget() as FNode;

        while (node != null)
        {
            GUILayout.Label($"{node.GetType()}: x:{node.x} y:{node.y}", EditorStyles.miniLabel);
            GUILayout.Label($"scaleX:{node.scaleX} scaleY:{node.scaleY} rotation:{node.rotation}", EditorStyles.miniLabel);

            var spriteNode = node as FSprite;

            if (spriteNode != null)
            {
                GUILayout.Label($"localRect:{spriteNode.localRect} boundsRect::{spriteNode.textureRect}", EditorStyles.miniLabel);
                GUILayout.Label($"anchorX:{spriteNode.anchorX} anchorY:{spriteNode.anchorY}", EditorStyles.miniLabel);
                GUILayout.Label($"pixelAnchorX:{spriteNode.anchorX*spriteNode.textureRect.width} pixelAnchorY:{spriteNode.anchorY*spriteNode.textureRect.height}", EditorStyles.miniLabel);
            }

            EditorGUILayout.Separator();
            //display parent next
            node = node.container;
        }

        EditorGUILayout.Separator();
    }