Пример #1
0
 public void SetData(List <SceneItemInfo> pagePath, long exhibitID, int exhibitIndex, GameObject srcObj, int mainPageIndex, string cameraPoint)
 {
     this.mainPageIndex  = mainPageIndex;
     this.cameraPoint    = cameraPoint;
     pageState           = new bool[pagePath.Count];
     selectItemIndex     = new List <bool> [pagePath.Count];
     m_allAssetPath      = pagePath;
     this.m_exhibitID    = exhibitID;
     this.m_exhibitIndex = exhibitIndex;
     this.m_srcObj       = srcObj;
     for (int i = 0; i < pagePath.Count; i++)
     {
         SceneItemInfo itemInfo = m_allAssetPath[i];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[i]);
         for (int j = 0; j < itemInfo.items.Count; j++)
         {
             if (itemInfo.items[j].itemID == exhibitID)
             {
                 selectItemIndex[i] = new List <bool>();
                 for (int k = 0; k < itemInfo.items[j].itemPos.Count; k++)
                 {
                     if (k == m_exhibitIndex)
                     {
                         selectItemIndex[i].Add(true);
                     }
                     else
                     {
                         selectItemIndex[i].Add(false);
                     }
                 }
             }
         }
     }
 }
Пример #2
0
    void SysncItem(long id, int index, Transform trans, string cameraPoint) //Vector3 pos,Vector3 scale,Vector3 rotation
    {
        List <SceneLogSyncData> logData = new List <SceneLogSyncData>();
        SceneLogSyncData        ld      = new SceneLogSyncData(m_allAssetName[selectDataIndex], id, index);

        logData.Add(ld);
        for (int i = 0; i < m_allItemInfo.Count; i++)
        {
            SceneItemInfo scenePageData = m_allItemInfo[i]; //AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[i]);
            for (int j = 0; j < scenePageData.items.Count; j++)
            {
                if (scenePageData.items[j].itemID == id)
                {
                    if (scenePageData.items[j].itemPos.Count <= index)
                    {
                        Debug.LogError("sysnc error index : " + id + "  " + index + "  page:" + m_allItemInfo[i].jsonName);
                        continue;
                    }
                    SceneLogSyncData ld1 = new SceneLogSyncData(m_allItemInfo[i].jsonName, id, index);
                    logData.Add(ld1);
                    scenePageData.items[j].itemPos[index].pos          = trans.position;    //pos;
                    scenePageData.items[j].itemPos[index].rotate       = trans.eulerAngles; //rotation;
                    scenePageData.items[j].itemPos[index].scale        = trans.localScale;  //scale;
                    scenePageData.items[j].itemPos[index].m_cameraNode = cameraPoint;
                    break;
                }
            }
        }
        UserLog.SyncSceneLog(logData, trans.position, trans.eulerAngles, trans.localScale);
    }
Пример #3
0
 static void setAssetData(SceneItemJson groupData, SceneItemInfo itemInfos)
 {
     itemInfos.lightMapName = groupData.lightMapName;
     itemInfos.items        = new List <ItemInfo>();
     for (int i = 0; i < groupData.items.Count; i++)
     {
         ItemInfoJson infoJson = groupData.items[i];
         ItemInfo     itemInfo = new ItemInfo();
         itemInfo.itemID      = infoJson.itemID;
         itemInfo.itemPercent = infoJson.itemPercent;
         itemInfo.itemName    = infoJson.itemName;
         itemInfo.itemPos     = new List <ItemPosInfo>();
         itemInfos.items.Add(itemInfo);
         for (int j = 0; j < infoJson.itemPos.Count; j++)
         {
             ItemPosInfo posInfo = new ItemPosInfo();
             posInfo.lightIndex   = infoJson.itemPos[j].lightIndex;
             posInfo.offsetX      = infoJson.itemPos[j].offsetX;
             posInfo.offsetY      = infoJson.itemPos[j].offsetY;
             posInfo.percent      = infoJson.itemPos[j].percent;
             posInfo.pos          = new Vector3(infoJson.itemPos[j].pos.x, infoJson.itemPos[j].pos.y, infoJson.itemPos[j].pos.z);
             posInfo.rotate       = new Vector3(infoJson.itemPos[j].rotate.x, infoJson.itemPos[j].rotate.y, infoJson.itemPos[j].rotate.z);
             posInfo.scale        = new Vector3(infoJson.itemPos[j].scale.x, infoJson.itemPos[j].scale.y, infoJson.itemPos[j].scale.z);
             posInfo.m_cameraNode = infoJson.itemPos[j].cameraNode;
             posInfo.tilingX      = infoJson.itemPos[j].tilingX;
             posInfo.tilingY      = infoJson.itemPos[j].tilingY;
             posInfo.type         = (ItemType)infoJson.itemPos[j].type;
             itemInfo.itemPos.Add(posInfo);
         }
     }
 }
Пример #4
0
    public static List <SceneItemInfo> RevertAsset()
    {
        Scene scene = SceneManager.GetActiveScene();

        if (scene == null)
        {
            return(null);
        }
        string sceneName = scene.name;
        string rootPath  = Application.dataPath + "/Res/SceneConfig/" + sceneName;

        if (!Directory.Exists(rootPath))
        {
            Directory.CreateDirectory(rootPath);
        }
        List <SceneItemInfo> itemInfos = new List <SceneItemInfo>();

        string[] files = Directory.GetFiles(rootPath);
        for (int i = 0; i < files.Length; i++)
        {
            FileInfo fileInfo = new FileInfo(files[i]);
            if (fileInfo.Name.Contains(".json") && !fileInfo.Name.Contains(".meta"))
            {
                SceneItemInfo info = SetAssetDataJson(files[i]);
                info.jsonName = fileInfo.Name;
                itemInfos.Add(info);
            }
        }
        return(itemInfos);
    }
Пример #5
0
	/// <summary>
	/// 第一次进场景的时候没有移动的时候,不会显示神圣晶石界面
	/// </summary>
	void RefreshHolyFirstLogin()
	{
		if(GameCenter.activityMng.GetActivityState(ActivityType.HOLYSPAR) == ActivityState.ONGOING)
		{
			FDictionary itemList = GameCenter.sceneMng.SceneItemInfoDictionary;
			SceneItem holyStone = null;
			foreach(int key in itemList.Keys) 
			{
				SceneItemInfo itemInfo = itemList[key] as SceneItemInfo;
				if(itemInfo.FunctionType == SceneFunctionType.HOLYSTONE)	
				{
					holyStone = GameCenter.curGameStage.GetSceneItem(itemInfo.ServerInstanceID);
					break;
				}
			}
			if(holyStone != null)
			{
				int distance = (int)((GameCenter.curMainPlayer.transform.position - holyStone.transform.position).sqrMagnitude);
				if(distance < 144)
				{
					if(GameCenter.taskMng.CurSelectToggle != ToggleType.HOLYSTONE)
					{
						GameCenter.activityMng.C2S_ReqHolyInfo();
						GameCenter.uIMng.CloseGUI(GUIType.TASK);
						GameCenter.taskMng.SetCurSelectToggle(ToggleType.HOLYSTONE);
						GameCenter.uIMng.GenGUI(GUIType.TASK,true);
					}
				}
			}
		}
	}
Пример #6
0
    void OnShowPage()
    {
        //页签
        EditorGUILayout.BeginVertical(GUILayout.Width(250), GUILayout.Height(580));
        itemInfoBenginScroll = EditorGUILayout.BeginScrollView(itemInfoBenginScroll, GUILayout.Width(250), GUILayout.Height(580));
        for (int i = 0; i < m_allAssetPath.Count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            pageState[i] = EditorGUILayout.Toggle("", pageState[i], GUILayout.Width(20), GUILayout.Height(30));
            //string[] assetPathSplit = m_allAssetPath[i].Split('/');
            string assetPathName = m_allAssetPath[i].jsonName;//assetPathSplit[assetPathSplit.Length - 1];
            if (selectPageIndex == i)
            {
                if (GUILayout.Button(assetPathName, chooseStyle, GUILayout.Width(220), GUILayout.Height(30)))
                {
                    selectPageIndex = i;

                    currentItemInfo = m_allAssetPath[selectPageIndex];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[selectPageIndex]);
                }
            }
            else
            {
                if (GUILayout.Button(assetPathName, style, GUILayout.Width(220), GUILayout.Height(30)))
                {
                    selectPageIndex = i;

                    currentItemInfo = m_allAssetPath[selectPageIndex];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[selectPageIndex]);
                }
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Button("", emptyStyle, GUILayout.Width(220), GUILayout.Height(5));
        }
        EditorGUILayout.EndScrollView();
        EditorGUILayout.EndVertical();
    }
Пример #7
0
    /// <summary>
    /// 保存位置数据
    /// </summary>
    void SaveJsonData()
    {
        if (!Directory.Exists(jsonPath))
        {
            Directory.CreateDirectory(jsonPath);
        }
        ///获取服务端数据
        //SceneItemServerJson serverJson = fastJSON.JSON.ToObject<SceneItemServerJson>();
        SceneDataJson serverJson = getServerData();

        if (serverJson == null)
        {
            serverJson            = new SceneDataJson(); //服务端数据
            serverJson.sceneDatas = new List <SceneItemServerJson>();
        }
        //SceneDataJson sceneDataJson = new SceneDataJson(); //服务端数据
        //sceneDataJson.sceneDatas = new List<SceneItemServerJson>();
        for (int i = 0; i < m_allItemInfo.Count; i++)
        {
            SceneItemInfo scenePageData = m_allItemInfo[i];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[i]);
            if (scenePageData != null)
            {
                SceneItemJson itemJson = new SceneItemJson(scenePageData);
                //sceneDataJson.sceneDatas.Add(itemJson);
                string jsonStr = fastJSON.JSON.ToJSON(itemJson);
                SceneLightHelper.CreateJson(jsonPath + scenePageData.jsonName, jsonStr);

                int groupID = int.Parse(scenePageData.jsonName.Split('.')[0]);
                SceneItemServerJson itemServerJson = new SceneItemServerJson(scenePageData);
                itemServerJson.groupId = groupID;
                //sceneDataJson.sceneDatas.Add(itemServerJson);
                bool isexist = false;
                for (int j = 0; j < serverJson.sceneDatas.Count; j++)
                {
                    SceneItemServerJson serverJson00 = serverJson.sceneDatas[j];
                    if (serverJson00.groupId == groupID)
                    {
                        serverJson.sceneDatas[j] = itemServerJson;
                        isexist = true;
                        break;
                    }
                }
                if (!isexist)
                {
                    serverJson.sceneDatas.Add(itemServerJson);
                }
            }
        }

        //服务端数据
        string serverJsonStr = fastJSON.JSON.ToJSON(serverJson);

        SceneLightHelper.CreateJson(Application.streamingAssetsPath + "/SceneData/scenedata.json", serverJsonStr);
    }
Пример #8
0
    static SceneItemInfo SetAssetDataJson(string jsonFullPath)
    {
        StreamReader reader  = new StreamReader(jsonFullPath);
        string       jsonStr = reader.ReadToEnd();

        reader.Close();
        SceneItemJson groupData = fastJSON.JSON.ToObject <SceneItemJson>(jsonStr);
        SceneItemInfo itemInfos = new SceneItemInfo();

        setAssetData(groupData, itemInfos);
        return(itemInfos);
    }
Пример #9
0
 //加载标签页数据
 void LoadAssetData()
 {
     if (m_allItemInfo.Count > sceneDataIndex)
     {
         itemInfos       = m_allItemInfo[sceneDataIndex];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[sceneDataIndex]);
         selectDataIndex = sceneDataIndex;
     }
     selectIndex = -1;
     selectItem  = null;
     DestoryItemObjs();
     CreateItemObjs();
 }
Пример #10
0
    //添加新标签页
    void AddDataPage()
    {
        string pageName = string.Empty;

        getNewDataPageName(m_allAssetName.Count, ref pageName);
        SceneItemInfo sceneInfo = new SceneItemInfo();//ScriptableObject.CreateInstance<SceneItemInfo>();

        sceneInfo.items    = new List <ItemInfo>();
        sceneInfo.jsonName = pageName;
        m_allItemInfo.Add(sceneInfo);
        m_allAssetName.Add(pageName);
        UserLog.AddPageSceneLog(pageName);
    }
Пример #11
0
    public void SyncPageItem(int index0, int index1)
    {
        SceneItemInfo scenePageData0 = m_allItemInfo[index0];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[index0]);

        for (int i = 0; i < scenePageData0.items.Count; i++)
        {
            for (int j = 0; j < scenePageData0.items[i].itemPos.Count; j++)
            {
                SyncSinglePage(scenePageData0.items[i].itemID, j, scenePageData0.items[i].itemPos[j], index1);
            }
        }
        UserLog.SyncAllPageSceneLog(m_allAssetName[index0], m_allAssetName[index1]);
    }
Пример #12
0
    /// <summary>
    /// 检测当前数据是否合法
    /// </summary>
    /// <param name="itemInfo"></param>
    /// <param name="sceneObjs"></param>
    /// <returns></returns>
    public static bool CheckDataSafe(SceneItemInfo itemInfo, List <EditorSceneObj> sceneObjs)
    {
        int itemCount = 0;
        int objCount  = 0;

        for (int i = 0; i < itemInfo.items.Count; i++)
        {
            itemCount += itemInfo.items[i].itemPos.Count;
        }
        for (int j = 0; j < sceneObjs.Count; j++)
        {
            objCount += sceneObjs[j].itemObj.Count;
        }
        return(itemCount == objCount);
    }
Пример #13
0
 /// <summary>
 /// 开始读条交互表现
 /// </summary>
 /// <param name="_info"></param>
 protected void StartCollect(SceneItemInfo _info)
 {
     if (IsActor)
     {
         return;
     }
     isCollecting = true;
     if (animFSM != null && _info.PlayerAnimName.Length > 0)
     {
         animFSM.Collect(_info.PlayerAnimName, 99);
     }
     if (headTextCtrl != null && _info.OpenTime > 0)
     {
         headTextCtrl.SetProgress(_info.OpenTime, _info.OpenDescription);
     }
 }
Пример #14
0
    public static void createObjLightData(SceneItemInfo itemInfos, string dir, List <EditorSceneObj> itemObjs, Texture2D lightTex)
    {
        SceneObjLightData           sceneLightData = new SceneObjLightData();
        List <ObjLightMapDataGroup> groups         = new List <ObjLightMapDataGroup>();

        for (int i = 0; i < itemInfos.items.Count; i++)
        {
            ItemInfo             itemInfo  = itemInfos.items[i];
            ObjLightMapDataGroup groupData = createObjLightData(itemObjs[i], itemInfo.itemID, lightTex);
            groups.Add(groupData);
        }
        sceneLightData.groups = groups.ToArray();
        string jsonStr = fastJSON.JSON.ToJSON(sceneLightData);

        CreateJson(dir, jsonStr);
        //createObjLightData();
    }
Пример #15
0
    private void SyncSinglePage(long id, int index, ItemPosInfo posInfo, int pageIndex)
    {
        SceneItemInfo scenePageData = m_allItemInfo[pageIndex];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[pageIndex]);

        for (int j = 0; j < scenePageData.items.Count; j++)
        {
            if (scenePageData.items[j].itemID == id)
            {
                if (scenePageData.items[j].itemPos.Count <= index)
                {
                    continue;
                }
                scenePageData.items[j].itemPos[index].pos          = posInfo.pos;
                scenePageData.items[j].itemPos[index].rotate       = posInfo.rotate;
                scenePageData.items[j].itemPos[index].scale        = posInfo.scale;
                scenePageData.items[j].itemPos[index].m_cameraNode = posInfo.m_cameraNode;
                break;
            }
        }
    }
Пример #16
0
 public void CopySceneItemInfo(SceneItemInfo sceneItemInfo)
 {
     if (sceneItemInfo == null)
     {
         return;
     }
     items = new List <ItemInfoServerJson>();
     for (int i = 0; i < sceneItemInfo.items.Count; i++)
     {
         ItemInfo           itemInfo = sceneItemInfo.items[i];
         ItemInfoServerJson infoJson = new ItemInfoServerJson();
         infoJson.itemPos  = new List <ItemPosInfoServerJson>();
         infoJson.itemID   = itemInfo.itemID;
         infoJson.itemName = itemInfo.itemName;
         for (int j = 0; j < itemInfo.itemPos.Count; j++)
         {
             ItemPosInfoServerJson posJson = new ItemPosInfoServerJson(itemInfo.itemPos[j]);
             infoJson.itemPos.Add(posJson);
         }
         items.Add(infoJson);
     }
 }
Пример #17
0
    public static void setLightMapData(SceneItemInfo itemInfo, List <EditorSceneObj> sceneObjs)
    {
        if (!CheckDataSafe(itemInfo, sceneObjs))
        {
            return;
        }

        for (int i = 0; i < sceneObjs.Count; i++)
        {
            for (int j = 0; j < sceneObjs[i].itemObj.Count; j++)
            {
                GameObject obj = sceneObjs[i].itemObj[j];
                if (obj == null)
                {
                    continue;
                }
                MeshRenderer render  = obj.GetComponent <MeshRenderer>();
                ItemPosInfo  posInfo = itemInfo.items[i].itemPos[j];
                SetLightData(render, posInfo);
            }
        }
    }
Пример #18
0
    static void SetAssetData(string jsonFullPath)
    {
        StreamReader reader  = new StreamReader(jsonFullPath);
        string       jsonStr = reader.ReadToEnd();

        reader.Close();
        SceneItemJson groupData = fastJSON.JSON.ToObject <SceneItemJson>(jsonStr);
        SceneItemInfo itemInfos = ScriptableObject.CreateInstance <SceneItemInfo>();

        setAssetData(groupData, itemInfos);

        FileInfo fileInfo = new FileInfo(jsonFullPath);
        Scene    scene    = SceneManager.GetActiveScene();

        if (scene == null)
        {
            return;
        }
        string sceneName = scene.name;//fileInfo.Name.Substring(0, index);

        int    dotIndex  = fileInfo.Name.LastIndexOf('.');
        string fileName  = fileInfo.Name.Substring(0, dotIndex);
        int    nameIndex = -1;

        int.TryParse(fileName, out nameIndex);
        if (nameIndex == -1)
        {
            return;
        }
        nameIndex = nameIndex % 100;
        //Debug.Log(sceneName);
        if (!Directory.Exists(Application.dataPath + "/Res/SceneData/" + sceneName))
        {
            Directory.CreateDirectory(Application.dataPath + "/Res/SceneData/" + sceneName);
        }
        AssetDatabase.CreateAsset(itemInfos, "Assets/Res/SceneData/" + sceneName + "/" + sceneName + "_" + nameIndex + ".asset");
        AssetDatabase.Refresh();
    }
Пример #19
0
    protected AssetMng.DownloadID Create(SceneItemInfo _info, System.Action <SceneItem, EResult> _callback)
    {
        return(exResources.GetSceneItem(_info.ConfigID, delegate(GameObject _asset, EResult _result)
        {
            if (GameCenter.IsDummyDestroyed(ObjectType.SceneItem, _info.ServerInstanceID))
            {
                _callback(null, EResult.Failed);
                return;
            }
            if (_result != EResult.Success)
            {
                _callback(null, _result);
                return;
            }
            this.gameObject.name = "SceneItem[" + _info.ServerInstanceID + "]";

            GameObject newGO = Instantiate(_asset) as GameObject;
            newGO.name = _asset.name;
            newGO.transform.parent = this.gameObject.transform;
            newGO.transform.localEulerAngles = Vector3.zero;
            newGO.transform.localPosition = Vector3.zero;
            if (_info.FunctionType == SceneFunctionType.BLOCK)           //光墙放到地下去一点 谢凯要求
            {
                newGO.transform.localPosition = new Vector3(0, -1, 0);
            }
            newGO.transform.localScale = Vector3.one * _info.ModelScale;
            newGO.AddComponent <FXCtrl>();
            newGO.AddComponent <SceneItemAnimFSM>();
            newGO.SetActive(false);
            newGO.SetActive(true);
            RefreshShader(newGO);

            isDummy_ = false;

            Init();
            _callback(this, _result);
        }));
    }
Пример #20
0
    /// <summary>
    /// 创建净数据对象 by吴江
    /// </summary>
    /// <param name="_info"></param>
    /// <returns></returns>
    public static SceneItem CreateDummy(SceneItemInfo _info)
    {
        GameObject newGO = new GameObject("Dummy SceneItem[" + _info.ServerInstanceID + "]");

        newGO.tag = "Monster";
        if (_info.FunctionType == SceneFunctionType.BLOCK)
        {
            newGO.SetMaskLayer(LayerMask.NameToLayer("Block"));
        }
        else
        {
            newGO.SetMaskLayer(LayerMask.NameToLayer("SceneItem"));
        }
        SceneItem item = newGO.AddComponent <SceneItem>();

        item.actorInfo = _info;
        item.isDummy_  = true;
        item.id        = _info.ServerInstanceID;
        GameCenter.curGameStage.PlaceGameObjectFromServer(item, _info.ServerPos.x, _info.ServerPos.z, _info.Dir, _info.ServerPos.y); //人参果宴采集了人参果,在斜坡或地图边缘,其时间到达自动掉落,会掉落在地底
        GameCenter.curGameStage.AddObject(item);
        item.IsActiveForMainplayer = true;                                                                                           //item.CheckIsActiveForMainplayer();
        return(item);
    }
Пример #21
0
    void SysncDeleteItem(long id, int index)
    {
        List <SceneLogSyncData> logData = new List <SceneLogSyncData>();

        for (int i = 0; i < m_allItemInfo.Count; i++)
        {
            SceneItemInfo scenePageData = m_allItemInfo[i];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>(m_allAssetPath[i]);
            for (int j = 0; j < scenePageData.items.Count; j++)
            {
                if (scenePageData.items[j].itemID == id)
                {
                    if (scenePageData.items[j].itemPos.Count > index)
                    {
                        SceneLogSyncData ld = new SceneLogSyncData(m_allItemInfo[i].jsonName, id, index);
                        logData.Add(ld);
                        scenePageData.items[j].itemPos.RemoveAt(index);
                    }
                    break;
                }
            }
        }
        UserLog.RemovePageItemSceneLog(logData);
    }
Пример #22
0
 void OnSysncItem()
 {
     if (GUILayout.Button("确认同步"))
     {
         List <SceneLogSyncData> logdata = new List <SceneLogSyncData>();
         SceneLogSyncData        ld      = new SceneLogSyncData(m_allAssetPath[mainPageIndex].jsonName, m_exhibitID, m_exhibitIndex);
         logdata.Add(ld);
         for (int i = 0; i < selectItemIndex.Length; i++)
         {
             if (!pageState[i])
             {
                 continue;
             }
             SceneItemInfo scenePageData = m_allAssetPath[i];//AssetDatabase.LoadAssetAtPath<SceneItemInfo>();
             for (int j = 0; j < scenePageData.items.Count; j++)
             {
                 if (scenePageData.items[j].itemID == m_exhibitID)
                 {
                     for (int k = 0; k < scenePageData.items[j].itemPos.Count; k++)
                     {
                         if (selectItemIndex[i][k])
                         {
                             SceneLogSyncData ld1 = new SceneLogSyncData(m_allAssetPath[i].jsonName, m_exhibitID, k);
                             logdata.Add(ld1);
                             scenePageData.items[j].itemPos[k].pos          = m_srcObj.transform.position;
                             scenePageData.items[j].itemPos[k].rotate       = m_srcObj.transform.eulerAngles;
                             scenePageData.items[j].itemPos[k].scale        = m_srcObj.transform.localScale;
                             scenePageData.items[j].itemPos[k].m_cameraNode = this.cameraPoint;
                         }
                     }
                 }
             }
         }
         UserLog.SyncSingleSceneLog(logdata, m_srcObj.transform.position, m_srcObj.transform.eulerAngles, m_srcObj.transform.localScale);
         this.Close();
     }
 }
Пример #23
0
 public SceneItemServerJson(SceneItemInfo sceneItemInfo)
 {
     CopySceneItemInfo(sceneItemInfo);
 }
Пример #24
0
 public SceneItemJson(SceneItemInfo sceneItemInfo)
 {
     CopySceneItemInfo(sceneItemInfo);
 }