public void Read(byte [] bytes) { BinaryHelper helper = new BinaryHelper(bytes); int areaCount = helper.ReadInt(); for (int index = 0; index < areaCount; index++) { SceneArea area = new SceneArea(); area.Load(helper); } }
CinemachineVirtualCamera CreateEditorCamera(SceneArea scene) { var obj = Instantiate(EditorCameraPrefab); obj.name = $"EditorCamera-{scene.BoundaryCollider.name}"; obj.transform.parent = transform; obj.transform.position = obj.transform.position.Set(z: CameraZ); obj.SetActive(false); var camera = obj.GetComponent <CinemachineVirtualCamera>(); var confiner = obj.GetComponent <CinemachineConfiner>(); confiner.m_ConfineMode = CinemachineConfiner.Mode.Confine2D; confiner.m_BoundingShape2D = scene.BoundaryCollider; return(camera); }
public static void Load() { SceneArea.TryLoadRegistry(); Gym.TryLoadRegistry(); Weather.CreateWeathers(); PokemonSpeciesData.LoadData(); PokemonMoveData.LoadData(); Nature.LoadRegistry(); SpriteStorage.TryLoadAll(); WildPokemonAreaData.LoadData(); TrainersData.LoadData(); Item.TrySetRegistry(); //TMs must be loaded after moves GenericNPCData.LoadData(); //Generic NPCs must be loaded after items DroppedItem.TryLoadRegistry(); //Dropped items must be loaded after items PokeMartData.LoadData(); //This must be loaded after all items }
public static void SaveSceneAreas(GameObject monsterNode) { if (monsterNode == null) { return; } if (monsterNode.name == "") { Debug.Log("必须给物体起名,该名字将作为保存的二进制文件的名字"); } int areaCount = monsterNode.transform.childCount; SceneAreas sceneAreas = new SceneAreas(); for (int areaIndex = 0; areaIndex < areaCount; areaIndex++) { Transform tarAreaTrans = monsterNode.transform.GetChild(areaIndex); //一个区域 SceneArea newArea = new SceneArea(); newArea.m_areaName = tarAreaTrans.name; int funcPointCount = tarAreaTrans.childCount; for (int funcPointIndex = 0; funcPointIndex < funcPointCount; funcPointIndex++) { Transform tarPoint = tarAreaTrans.GetChild(funcPointIndex); SceneFuncPoint funcPoint = tarPoint.GetComponent <SceneFuncPoint>(); if (funcPoint == null || funcPoint.m_pointType == ENScenePointType.none) { Debug.Log(tarPoint.name + " has no component 'SceneFuncPoint' or it is 'none' "); return; } switch (funcPoint.m_pointType) { case ENScenePointType.normalNPC: FuncNPCInfo normalNpc = funcPoint.m_npcInfo; normalNpc.m_pos = tarPoint.localPosition; newArea.m_normalNpcList.Add(normalNpc); break; case ENScenePointType.blockNPC: FuncNPCInfo blockNpc = funcPoint.m_npcInfo; blockNpc.m_pos = tarPoint.localPosition; newArea.m_blockNpcList.Add(blockNpc); break; case ENScenePointType.triggerArea: TriggerAreaInfo triggerAreaInfo = funcPoint.m_triggerAreaInfo; triggerAreaInfo.m_pos = tarPoint.localPosition; newArea.m_triggerAreaList.Add(triggerAreaInfo); break; case ENScenePointType.spawnPoint: SpawnPointInfo spawnPointInfo = funcPoint.m_spawnPointInfo; spawnPointInfo.m_pos = tarPoint.localPosition; spawnPointInfo.m_areaScale = tarPoint.localScale; for (int index = 0; index < funcPoint.m_spawnPointInfo.m_spawnPointsId.Count; index++) { spawnPointInfo.m_spawnPointsId.Add(funcPoint.m_spawnPointInfo.m_spawnPointsId[index]); } newArea.m_spawnPointList.Add(spawnPointInfo); break; } } sceneAreas.m_areaList.Add(newArea); } using (FileStream targetFile = new FileStream("Assets/Resources/Prefabs/ScenePrefabs/" + monsterNode.name + ".bytes", FileMode.Create)) { BinaryHelper helper = new BinaryHelper(); sceneAreas.Save(helper); byte[] saveBytes = helper.GetBytes(); targetFile.Write(saveBytes, 0, saveBytes.Length); Debug.Log(monsterNode.name + ".bytes Success Saved"); } }