예제 #1
0
    public static bool DrawAsFoldout(SerializedObject serializedObject, string propName, string title)
    {
        var prop = serializedObject.FindProperty(propName);

        if (prop.objectReferenceValue == null || prop.hasMultipleDifferentValues)
        {
            return(false);
        }
        else
        {
            if (!FoldoutStates.ContainsKey(title))
            {
                FoldoutStates.Add(title, false);
            }
            FoldoutStates[title] = EditorGUILayout.Foldout(FoldoutStates[title], title);
            if (FoldoutStates[title])
            {
                var propList = new List <UnityEngine.Object>();
                foreach (var oTarget in serializedObject.targetObjects)
                {
                    var myTarget = oTarget as UnityEngine.Object;
                    Debug.Assert(myTarget != null, "MyTarget != null");
                    var value = myTarget.GetType().GetField(propName).GetValue(myTarget) as UnityEngine.Object;
                    if (value != null)
                    {
                        propList.Add(value);
                    }
                }
                var obj_clip = new SerializedObject(propList.ToArray());
                return(PseudoDefaultInspector.Draw(obj_clip));
            }
        }
        return(false);
    }
예제 #2
0
    public override void OnInspectorGUI()
    {
        if (DrawDefaultInspector())
        {
            foreach (var oTarget in serializedObject.targetObjects)
            {
                var myTarget = oTarget as BbSpriteAnimation;
                Debug.Assert(myTarget != null, "myTarget != null");
                myTarget.SyncDictionary();
            }
        }

        PseudoDefaultInspector.DrawAsFoldout(serializedObject, "clip", "Clip properties");
    }
예제 #3
0
    public static bool Draw(SerializedObject serializedObject, string propName)
    {
        var propList = new List <UnityEngine.Object>();
        var field    = serializedObject.targetObject.GetType().GetField(propName);

        if (field == null)
        {
            return(false);
        }
        foreach (var oTarget in serializedObject.targetObjects)
        {
            var myTarget = oTarget as UnityEngine.Object;
            Debug.Assert(myTarget != null, "MyTarget != null");
            var value = field.GetValue(myTarget) as UnityEngine.Object;
            if (value == null)
            {
                return(false);
            }
            propList.Add(value);
        }
        var obj_clip = new SerializedObject(propList.ToArray());

        return(PseudoDefaultInspector.Draw(obj_clip));
    }