Exemplo n.º 1
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);
         }
     }
 }
Exemplo n.º 2
0
    public void SetData(SceneItemJson json)
    {
        m_lightMapName = json.lightMapName;
        m_data         = new List <LightMapData>();
        for (int i = 0; i < json.items.Count; i++)
        {
            LightMapData mapdata = new LightMapData();
            mapdata.m_data = new List <SingleLightMapData>();

            ItemInfoJson itemjson = json.items[i];
            mapdata.itemID   = itemjson.itemID;
            mapdata.itemName = itemjson.itemName;
            for (int j = 0; j < itemjson.itemPos.Count; j++)
            {
                SingleLightMapData singleData = new SingleLightMapData();
                ItemPosInfoJson    posJson    = itemjson.itemPos[j];
                singleData.lightIndex = posJson.lightIndex;
                singleData.offsetX    = posJson.offsetX;
                singleData.offsetY    = posJson.offsetY;
                singleData.tilingX    = posJson.tilingX;
                singleData.tilingY    = posJson.tilingY;
                mapdata.m_data.Add(singleData);
            }
            m_data.Add(mapdata);
        }
    }
Exemplo n.º 3
0
    void Check()
    {
        if (tex == null)
        {
            return;
        }
        for (int i = 0; i < sceneItem.items.Count; i++)
        {
            if (itemState[i])
            {
                ItemInfoJson itemInfo = sceneItem.items[i];
                BaseItem     baseItem = getBaseItemByID(itemInfo.itemID);
                for (int j = 0; j < itemInfo.itemPos.Count; j++)
                {
                    ItemPosInfoJson posInfo = itemInfo.itemPos[j];
                    Object          obj     = AssetDatabase.LoadAssetAtPath("Assets/" + baseItem.model + ".prefab", typeof(Object));
                    GameObject      gameObj = Instantiate(obj) as GameObject;
                    gameObj.transform.position    = new Vector3(posInfo.pos.x, posInfo.pos.y, posInfo.pos.z);
                    gameObj.transform.eulerAngles = new Vector3(posInfo.rotate.x, posInfo.rotate.y, posInfo.rotate.z);
                    gameObj.name = itemInfo.itemName;

                    ObjLightMapData mapdata = objLightData.groups[i].objLightDatas[j];
                    MeshRenderer    render  = gameObj.GetComponent <MeshRenderer>();
                    render.lightmapIndex       = (int)mapdata.lightIndex;
                    render.lightmapScaleOffset = new Vector4(mapdata.tilingX, mapdata.tilingY, mapdata.offsetX, mapdata.offsetY);
                    //MColor[] mc = mapdata.color;
                    //creatNewLightMap(mapdata,tex);
                }
            }
        }
    }
Exemplo n.º 4
0
 public void LoadModel()
 {
     foreach (var kv in m_data.m_allExhibitData)
     {
         for (int i = 0; i < kv.Value.items.Count; i++)
         {
             ItemInfoJson itemInfo = kv.Value.items[i];
             for (int j = 0; j < itemInfo.itemPos.Count; j++)
             {
                 LoadModel(itemInfo.itemID, itemInfo.itemPos[j], j, i, kv.Key);
             }
         }
     }
 }
Exemplo n.º 5
0
 void CreateDataItem()
 {
     if (sceneItem == null)
     {
         return;
     }
     for (int i = 0; i < sceneItem.items.Count; i++)
     {
         ItemInfoJson itemInfo = sceneItem.items[i];
         EditorGUILayout.BeginHorizontal();
         itemState[i] = EditorGUILayout.Toggle(itemInfo.itemID + "/" + itemInfo.itemName + "/" + itemInfo.itemPos.Count, itemState[i]);
         EditorGUILayout.EndHorizontal();
     }
 }
Exemplo n.º 6
0
 void LoadAllItemObj()
 {
     itemJsonObjs.Clear();
     itemObjs.Clear();
     foreach (var kv in items)
     {
         List <GameObject> objs = new List <GameObject>();
         itemJsonObjs.Add(kv.Key, objs);
         for (int i = 0; i < kv.Value.items.Count; i++)
         {
             ItemInfoJson itemJson = kv.Value.items[i];
             for (int j = 0; j < itemJson.itemPos.Count; j++)
             {
                 objs.Add(LoadModel(itemJson.itemID, itemJson.itemPos[j], Path.GetFileName(kv.Key), j));
             }
         }
     }
 }
Exemplo n.º 7
0
    void LoadAllItemObj()
    {
        ClearItemObj();
        selectItemInfoJson.Clear();
        for (int i = 0; i < filterItemCount; i++)
        {
            GetRandom();
        }

        for (int j = 0; j < m_currentItemJson.items.Count; j++)
        {
            if (m_currentItemJson.items[j].itemPos[0].type == 1)
            {
                if (selectItemInfoJson.Contains(j))
                {
                    Debug.LogError("random error : task item");
                    continue;
                }
                selectItemInfoJson.Add(j);
            }
        }

        for (int i = 0; i < selectItemInfoJson.Count; i++)
        {
            ItemInfoJson itemJson = m_currentItemJson.items[selectItemInfoJson[i]];
            int          posRan   = Random.Range(0, itemJson.itemPos.Count);
            currentItemobjs.Add(LoadModel(itemJson.itemID, itemJson.itemPos[posRan]));
        }


        //foreach (var kv in items)
        //{
        //    List<GameObject> objs = new List<GameObject>();
        //    itemJsonObjs.Add(kv.Key, objs);
        //    for (int i = 0; i < kv.Value.items.Count; i++)
        //    {
        //        ItemInfoJson itemJson = kv.Value.items[i];
        //        for (int j = 0; j < itemJson.itemPos.Count; j++)
        //        {
        //            objs.Add(LoadModel(itemJson.itemID,itemJson.itemPos[j],Path.GetFileName(kv.Key),j));
        //        }
        //    }
        //}
    }
Exemplo n.º 8
0
    public void SetLightMap()
    {
        for (int i = 0; i < m_allExhibitObj.Count; i++)
        {
            ExhibitObjData objData       = m_allExhibitObj[i];
            string         groupFileName = objData.m_groupFileName;

            if (m_allExhibitData.ContainsKey(groupFileName))
            {
                ItemInfoJson infoJson = m_allExhibitData[groupFileName].items[objData.m_itemIndex];
                if (infoJson.itemID == objData.m_propId)
                {
                    GetLightMapForGameObject(infoJson.itemPos[objData.m_posIndex], objData.gameObject);
                }
                else
                {
                    Debug.LogError("lightmap error:" + objData.m_propId);
                }
            }
        }
        SaveLightMapToFile();
    }
Exemplo n.º 9
0
 public void CopySceneItemInfo(SceneItemInfo sceneItemInfo)
 {
     if (sceneItemInfo == null)
     {
         return;
     }
     items = new List <ItemInfoJson>();
     for (int i = 0; i < sceneItemInfo.items.Count; i++)
     {
         ItemInfo     itemInfo = sceneItemInfo.items[i];
         ItemInfoJson infoJson = new ItemInfoJson();
         infoJson.itemPos  = new List <ItemPosInfoJson>();
         infoJson.itemID   = itemInfo.itemID;
         infoJson.itemName = itemInfo.itemName;
         for (int j = 0; j < itemInfo.itemPos.Count; j++)
         {
             ItemPosInfoJson posJson = new ItemPosInfoJson(itemInfo.itemPos[j]);
             infoJson.itemPos.Add(posJson);
         }
         items.Add(infoJson);
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// 载入场景物件
        /// </summary>
        /// <param name="decoratorList"></param>
        /// <param name="taskObjectList"></param>
        protected virtual void LoadSceneObjects(IList <long> decoratorList, IList <long> taskObjectList)
        {
            EngineCoreEvents.ResourceEvent.GetAssetEvent.SafeInvoke(this.m_sceneData.exhibitGroupId, (assetName, assetObject) =>
            {
                m_sceneInfo = JSON.ToObject <SceneItemJson>(assetObject.ToString());

                EngineCoreEvents.ResourceEvent.ReleaseAssetEvent.SafeInvoke(m_sceneData.exhibitGroupId, assetObject);

                Dictionary <long, ItemInfoJson> sceneItemConfigDict = new Dictionary <long, ItemInfoJson>();

                //临时修改加载lightmap
                GOGUI.GOGUITools.GetAssetAction.SafeInvoke(m_sceneInfo.lightMapName, (prefabName, obj) =>
                {
                    this.m_isLightMapReady = true;
                    //Texture lightTex = null;

                    if (StringUtils.IsNullEmptyOrWhiteSpace(m_sceneInfo.lightMapName) || obj == null)
                    {
                        Debug.LogWarning($"can't find lightmap in  {assetName}");
                    }

                    if (obj != null)
                    {
                        this.m_sceneExtraLightTex = obj as Texture;
                    }

                    for (int i = 0; i < m_sceneInfo.items.Count; ++i)
                    {
                        ItemInfoJson itemInfo = m_sceneInfo.items[i];

                        if (!sceneItemConfigDict.ContainsKey(itemInfo.itemID))
                        {
                            sceneItemConfigDict.Add(itemInfo.itemID, itemInfo);
                        }
                        else
                        {
                            Debug.LogError("item id duplicate ,item id:" + itemInfo.itemID + ", config info :" + assetName);
                        }
                    }


                    //todo:之后重构 2018-7-26 20:25:39
                    for (int i = 0; i < decoratorList.Count; ++i)
                    {
                        long itemID = decoratorList[i];
                        if (!sceneItemConfigDict.ContainsKey(itemID))
                        {
                            Debug.LogError("no item :" + itemID + " in " + assetName);
                        }

                        ItemInfoJson itemInfo = sceneItemConfigDict[itemID];

                        EntityBase sceneItemEntity = EntityManager.Instance.AllocEntity(EntityType.Scene_Decoration);
                        Confexhibit confItem       = Confexhibit.Get(itemInfo.itemID);
                        if (confItem == null || string.IsNullOrEmpty(confItem.assetName))
                        {
                            Debug.Log("can't find item:" + itemInfo.itemID);
                            continue;
                        }
                        sceneItemEntity.SetAssetName(confItem.assetName);
                        sceneItemEntity.SetEntityData(itemInfo);
                        sceneItemEntity.SetLightTexture(m_sceneExtraLightTex);
                        sceneItemEntity.PreloadAsset();

                        AddSceneEntity(sceneItemEntity);
                    }

                    for (int i = 0; i < taskObjectList.Count; ++i)
                    {
                        long itemID = taskObjectList[i];
                        if (!sceneItemConfigDict.ContainsKey(itemID))
                        {
                            Debug.LogError("no item :" + itemID + " in " + assetName);
                        }

                        ItemInfoJson itemInfo = sceneItemConfigDict[itemID];

                        EntityBase sceneItemEntity = EntityManager.Instance.AllocEntity(EntityType.Scene_Object);
                        Confexhibit confItem       = Confexhibit.Get(itemInfo.itemID);
                        if (confItem == null || string.IsNullOrEmpty(confItem.assetName))
                        {
                            Debug.Log("can't find item:" + itemInfo.itemID);
                            continue;
                        }
                        sceneItemEntity.SetAssetName(confItem.assetName);
                        sceneItemEntity.SetEntityData(itemInfo);
                        sceneItemEntity.SetLightTexture(m_sceneExtraLightTex);
                        sceneItemEntity.PreloadAsset();

                        AddSceneEntity(sceneItemEntity);
                    }

                    InitFindingEntityItems();
                }, LoadPriority.Default);
                ///////
            }, LoadPriority.Prior);
        }