コード例 #1
0
ファイル: AssetService.cs プロジェクト: punker76/Macabre2D
        public DependencyObject GetEditor(Asset asset)
        {
            DependencyObject editor = null;

            if (asset is ImageAsset imageAsset)
            {
                editor = new ImageAssetEditor {
                    Asset = imageAsset
                };
            }
            else if (asset is SpriteWrapper spriteWrapper)
            {
                editor = new SpriteWrapperEditor {
                    ImageAsset    = spriteWrapper.ImageAsset,
                    SpriteWrapper = spriteWrapper
                };
            }
            else if (asset is SpriteAnimationAsset spriteAnimation)
            {
                editor = new SpriteAnimationAssetEditor {
                    Asset = spriteAnimation
                };
            }
            else if (asset is FontAsset fontAsset)
            {
                editor = new FontAssetEditor {
                    Asset = fontAsset
                };
            }

            return(editor);
        }
コード例 #2
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();
        BMFontMultText fontText = target as BMFontMultText;

        EditorGUILayout.Space();

        int             removeKey    = -1;
        List <FontData> fontDataList = fontText.fontDataList;

        for (int i = 0; i < fontDataList.Count; i++)
        {
            EditorGUILayout.BeginVertical((GUIStyle)"SelectionRect");

            EditorGUILayout.BeginHorizontal();
            bool status = FontAssetEditor.DrawTextToggle(string.Format("序列:{0}", i + 1));
            if (GUILayout.Button("", (GUIStyle)"OL Minus", GUILayout.Width(20)))
            {
                removeKey = i;
            }
            EditorGUILayout.EndHorizontal();


            if (status)
            {
                fontDataList[i].text = EditorGUILayout.TextArea(fontDataList[i].m_Text, GUILayout.Height(50));

                int index = 0;
                if (fontText.m_FontGroups.Contains(fontDataList[i].group))
                {
                    index = fontText.m_FontGroups.IndexOf(fontDataList[i].group);
                }

                EditorGUILayout.Space();

                EditorGUILayout.BeginHorizontal();
                EditorGUIUtility.labelWidth = 50;
                index = EditorGUILayout.Popup("Group", index, fontText.m_FontGroups.ToArray(), GUILayout.Width(200));
                EditorGUILayout.Space();
                EditorGUIUtility.labelWidth = 50;
                fontDataList[i].offest      = EditorGUILayout.Vector2Field("Offest", fontDataList[i].offest, GUILayout.Width(200));

                EditorGUILayout.EndHorizontal();

                if (fontText.m_FontGroups.Count > selectGroup)
                {
                    fontDataList[i].group = fontText.m_FontGroups[index];
                }
            }
            EditorGUILayout.Space();
            EditorGUILayout.EndVertical();
            EditorGUILayout.Space();
        }

        if (removeKey != -1 && fontDataList.Count > removeKey)
        {
            fontDataList.RemoveAt(removeKey);
        }

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("添 加"))
        {
            fontText.AddFontGroup();
        }

        if (GUILayout.Button("删 除"))
        {
            if (fontDataList.Count > 0)
            {
                fontDataList.RemoveAt(fontDataList.Count - 1);
            }
        }

        EditorGUILayout.EndHorizontal();


        if (GUI.changed)
        {
            fontText.SetAllDirty();
            EditorUtility.SetDirty(target);
            GUI.changed = false;
        }



        EditorGUILayout.Space();

        EditorGUILayout.PropertyField(m_Color);
        EditorGUILayout.PropertyField(m_Material);
        EditorGUILayout.PropertyField(m_RaycastTarget);
        EditorGUILayout.PropertyField(m_FontAsset);
        EditorGUILayout.PropertyField(m_Gap);

        serializedObject.ApplyModifiedProperties();
    }