Example #1
0
    //克隆代码
    public override void CloneScript(GameObject cloneSource, GameObject cloneObject)
    {
        UISpecialArea oldareaScript = cloneSource.GetComponent <UISpecialArea>();
        UISpecialArea newareaScript = cloneObject.GetComponent <UISpecialArea>();

        newareaScript.areaData        = oldareaScript.areaData;
        newareaScript.areaSettingData = oldareaScript.areaSettingData;
        newareaScript.InitData();
    }
Example #2
0
    //自动导入配置文件
    public static void AutoImportSettingFile()
    {
        string path = EditorUtility.OpenFilePanel("导入场景配置文件", Application.dataPath + "/Editor/SceneEditor/JC", "bytes");

        if (string.IsNullOrEmpty(path))
        {
            return;
        }

        List <SceneEditorSettingBaseData> settingDataList = new List <SceneEditorSettingBaseData>();
        string strLine = null;

        try
        {
            FileStream   aFile = new FileStream(path, FileMode.Open);
            StreamReader sr    = new StreamReader(aFile);
            strLine = sr.ReadLine();
            while (strLine != null)
            {
                if (strLine.Length > 0)
                {
                    SceneEditorSettingBaseData settingData = null;
                    string content = strLine.Substring(1);
                    switch (strLine[0])
                    {
                    case 'M':
                    {
                        MapSettingData mapData = fastJSON.JSON.Instance.ToObject <MapSettingData>(content);
                        settingData = (SceneEditorSettingBaseData)mapData;
                        break;
                    }

                    case 'N':
                    {
                        NPCSettingData npcData = fastJSON.JSON.Instance.ToObject <NPCSettingData>(content);
                        settingData = (SceneEditorSettingBaseData)npcData;
                        break;
                    }

                    case 'C':
                    {
                        SpecialAreaSettingData areaData = fastJSON.JSON.Instance.ToObject <SpecialAreaSettingData>(content);
                        settingData = (SceneEditorSettingBaseData)areaData;
                        break;
                    }
                    }
                    if (settingData != null)
                    {
                        settingDataList.Add(settingData);
                    }
                }
                strLine = sr.ReadLine();
            }
            sr.Close();
        }
        catch (IOException ex)
        {
            EditorUtility.DisplayDialog("错误", ex.ToString(), "确定");
            return;
        }

        //Debug.LogError("settingDataList.count="+settingDataList.Count.ToString() );

        //生成场景
        foreach (SceneEditorSettingBaseData baseData in settingDataList)
        {
            GameObject create = null;
            if (baseData.Type == SceneElementType.MAP)
            {
                MapSettingData data = (MapSettingData)baseData;
                create = CreateMap(data.sourcePath, new Vector3(data.Attribute.pos[0], data.Attribute.pos[1], data.Attribute.pos[2]),
                                   new Vector2(data.GridSize[0], data.GridSize[1]), new Color(data.GridColor[0], data.GridColor[1], data.GridColor[2], data.GridColor[3]));
                if (create != null)
                {
                    UISceneMap uimap = create.GetComponent <UISceneMap>();
                    if (uimap != null)
                    {
                        uimap.settingData = data;
                        uimap.mapData     = data.Attribute;
                        uimap.InitData();
                    }
                }
                else
                {
                    break;
                }
            }
            else if (baseData.Type == SceneElementType.NPC)
            {
                NPCSettingData data = (NPCSettingData)baseData;
                create = CreatePlant(data.sourcePath, new Vector3(data.Attribute.pos[0], data.Attribute.pos[1], data.Attribute.pos[2]), new Vector3(data.Attribute.scale[0], data.Attribute.scale[1], data.Attribute.scale[2]),
                                     data.Type, data.isAtMap, new Vector3(data.Attribute.rotation[0], data.Attribute.rotation[1], data.Attribute.rotation[2]));
                if (create != null)
                {
                    //Debug.LogError(data.Attribute.startIntervalTime.ToString());
                    UINPC uinpc = create.GetComponent <UINPC>();
                    if (uinpc != null)
                    {
                        uinpc.settingData = data;
                        uinpc.npcData     = data.Attribute;
                        uinpc.InitData();
                    }
                }
            }
            else
            {
                SpecialAreaSettingData data = (SpecialAreaSettingData)baseData;
                create = CreatePlant(data.sourcePath, new Vector3(data.Attribute.pos[0], data.Attribute.pos[1], data.Attribute.pos[2]), new Vector3(data.Attribute.scale[0], data.Attribute.scale[1], data.Attribute.scale[2]),
                                     data.Type, data.isAtMap, new Vector3(data.Attribute.rotation[0], data.Attribute.rotation[1], data.Attribute.rotation[2]));
                UISpecialArea uiarea = create.GetComponent <UISpecialArea>();
                if (uiarea != null)
                {
                    uiarea.settingData = data;
                    uiarea.areaData    = data.Attribute;
                    uiarea.InitData();
                }
            }
        }
    }