Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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
        }
Exemplo n.º 4
0
    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");
        }
    }