예제 #1
0
        void loadSceneDecoration()
        {
            string jsonString = Tools.ReadStringFromFile(Application.dataPath + "/" + SceneDecorationFile);

            SceneDecorationDic = Tools.Json2Obj <Dictionary <string, SceneDecorationEditorwindowData> >(jsonString);

            SceneDecorationList = SceneDecorationDic.Values.ToList();
            currSceneDecoration = SceneDecorationList[0];

            string scalejson = Tools.ReadStringFromFile(Application.dataPath + "/Resources_moved/Scripts/SceneDecoration/scale.json");

            imgsclae = Tools.Json2Obj <float>(scalejson);
        }
예제 #2
0
        void OnGUI()
        {
            GUIStyle boxStyle = new GUIStyle("box");

            var width  = position.size.x - boxStyle.border.horizontal;
            var height = position.size.y - boxStyle.border.vertical;

            var innerBoxWidth  = width - (boxStyle.padding.horizontal + boxStyle.border.horizontal);
            var innerBoxHeight = height - (boxStyle.padding.vertical + boxStyle.border.vertical);

            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(width), GUILayout.Height(height));

            // 设置路径, 以及存取数据 add by TangJian 2017/11/15 16:22:45
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(SceneDecorationFile);
            if (MyGUI.Button("读取"))
            {
                loadSceneDecoration();
            }
            if (MyGUI.Button("保存"))
            {
                saveSceneDecoration();
            }
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField(prefabPath);
            if (MyGUI.Button("制作预制体"))
            {
                saveSceneDecoration();
            }
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            imgsclae = MyGUI.FloatFieldWithTitle("图片整体缩放大小", imgsclae);
            EditorGUILayout.EndHorizontal();

            // 编辑区域 add by TangJian 2017/11/15 16:28:19
            EditorGUILayout.BeginHorizontal();

            // // 列表框 add by TangJian 2017/11/15 16:27:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            listScrollViewPos = EditorGUILayout.BeginScrollView(listScrollViewPos);

            for (int i = SceneDecorationList.Count - 1; i >= 0; i--)
            {
                var item = SceneDecorationList[i];
                EditorGUILayout.BeginHorizontal();

                if (MyGUI.Button("删除", GUILayout.Width(50)))
                {
                    SceneDecorationList.RemoveAt(i);
                }

                if (MyGUI.Button(item.id))
                {
                    currSceneDecoration = item;
                }

                if (MyGUI.Button("复制", GUILayout.Width(50)))
                {
                    var consumableData = Tools.Json2Obj <SceneDecorationEditorwindowData>(Tools.Obj2Json(item, true));
                    SceneDecorationList.Add(consumableData);
                }

                EditorGUILayout.EndHorizontal();
            }

            if (MyGUI.Button("+"))
            {
                SceneDecorationList.Add(new SceneDecorationEditorwindowData());
            }

            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            // 编辑框 add by TangJian 2017/11/15 16:28:46
            EditorGUILayout.BeginVertical(boxStyle, GUILayout.Width(innerBoxWidth / 2), GUILayout.ExpandHeight(true));
            editScrollViewPos = EditorGUILayout.BeginScrollView(editScrollViewPos);
            if (currSceneDecoration != null)
            {
                currSceneDecoration.id = MyGUI.TextFieldWithTitle("ID", currSceneDecoration.id);
                currSceneDecoration.sceneDecorationPosition = (SceneDecorationPosition)MyGUI.EnumPopupWithTitle("显示位置", currSceneDecoration.sceneDecorationPosition);
                UsePathorImg = EditorGUILayout.ToggleLeft(new GUIContent("使用路径还是贴图"), UsePathorImg);
                if (UsePathorImg)
                {
                    Texture2D img = (Texture2D)AssetDatabase.LoadAssetAtPath(currSceneDecoration.texturePath, typeof(Texture2D));
                    img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), img, typeof(Texture2D), UsePathorImg);
                    currSceneDecoration.texturePath = AssetDatabase.GetAssetPath(img);
                    EditorGUILayout.LabelField("图片路径:", currSceneDecoration.texturePath);
                }
                else
                {
                    currSceneDecoration.texturePath = MyGUI.TextFieldWithTitle("图片路径:", currSceneDecoration.texturePath);
                    Texture2D img = (Texture2D)EditorGUILayout.ObjectField(new GUIContent("贴图"), AssetDatabase.LoadAssetAtPath(currSceneDecoration.texturePath, typeof(Texture2D)), typeof(Texture2D), UsePathorImg);
                }
                currSceneDecoration.scaleType = (tian.ScaleType)MyGUI.EnumPopupWithTitle("使用整体缩放大小还是单独缩放大小", currSceneDecoration.scaleType);
                if (currSceneDecoration.scaleType == tian.ScaleType.Alone)
                {
                    currSceneDecoration.AloneScale = MyGUI.FloatFieldWithTitle("单独缩放大小", currSceneDecoration.AloneScale);
                }
            }
            EditorGUILayout.EndScrollView();
            EditorGUILayout.EndVertical();


            EditorGUILayout.EndHorizontal();

            EditorGUILayout.EndVertical();
        }