//增加位置节点 void AddNodeObj(ItemInfo info, ItemPosInfo posInfo, EditorSceneObj sceneObj, bool isNew) { BaseItem baseItem = getBaseItemByID(info.itemID); if (baseItem == null) { return; } //加载资源 GameObject obj = AssetDatabase.LoadAssetAtPath <GameObject>("Assets/" + baseItem.model + ".prefab"); obj = Instantiate(obj) as GameObject; obj.name = info.itemName; obj.transform.SetParent(sceneObj.rootObj.transform); obj.isStatic = true; if (posInfo != null) { obj.transform.position = posInfo.pos; obj.transform.eulerAngles = posInfo.rotate; obj.transform.localScale = (posInfo.scale == Vector3.zero)? Vector3.one:posInfo.scale; } else { obj.transform.position = Vector3.zero; obj.transform.eulerAngles = Vector3.zero; } sceneObj.itemObj.Add(obj); if (isNew) { UserLog.AddNodeSceneLog(m_allAssetName[selectDataIndex], info.itemID, sceneObj.itemObj.Count - 1); } }
/// <summary> /// 生成单类物体的光照信息 多个位置 /// </summary> /// <param name="objs"></param> /// <param name="id"></param> static ObjLightMapDataGroup createObjLightData(EditorSceneObj objs, long id, Texture2D lightTex) { ObjLightMapDataGroup dataGroup = new ObjLightMapDataGroup(); dataGroup.id = id; List <ObjLightMapData> objPosMapData = new List <ObjLightMapData>(); for (int i = 0; i < objs.itemObj.Count; i++) { GameObject posObj = objs.itemObj[i]; ObjLightMapData mapdata = getObjLightMapData(posObj, lightTex); objPosMapData.Add(mapdata); } dataGroup.objLightDatas = objPosMapData.ToArray(); return(dataGroup); }
void AddSingleItemObj(ItemInfo info) { GameObject objParent = new GameObject(info.itemName); objParent.transform.position = Vector3.zero; EditorSceneObj sceneObj = new EditorSceneObj(); sceneObj.rootObj = objParent; sceneObj.itemObj = new List <GameObject>(); itemObjs.Add(sceneObj); for (int j = 0; j < info.itemPos.Count; j++) { //加载资源 AddNodeObj(info, info.itemPos[j], sceneObj, false); } }