Пример #1
0
    public void RecreateCoordDataSet()
    {
        InitSceneSize();

        var sceneName = SceneManager.GetActiveScene().name;

        m_CoordDataSet = new SceneCoordDataSet(sceneName, m_SceneLength, m_SceneWidth, m_TerrainBounds.min.x,
                                               m_TerrainBounds.min.z);

        Debug.Log($"重新生成,The count x is {m_CoordDataSet.CountX}, the count y is {m_CoordDataSet.CountY}");

        for (int i = 0; i < m_CoordDataSet.CountX; i++)
        {
            for (int j = 0; j < m_CoordDataSet.CountY; j++)
            {
                var tempPos = m_CoordDataSet.CalcPos(i, j);
                var pos     = new Vector3(tempPos.X, 900f, tempPos.Y);
                var bFlag   = JudgeCoord(pos, 1000f);
                //格子的value==1表示可以画格子
                var value = bFlag ? 1 : 0;
                m_CoordDataSet.SetPoint(i, j, value);
            }
        }
        Debug.Log($"重新生成结束,{m_CoordDataSet.GetCount()}个格子中,一共有多少格子有效:{m_CoordDataSet.GetValueSum()}");
        SaveCoordDataSet();
    }
Пример #2
0
    void Start()
    {
        var sceneName = SceneManager.GetActiveScene().name;

        m_CoordDataSet = SceneCoordDataSet.CreateBySceneName(sceneName);
        if (m_CoordDataSet == null)
        {
            Debug.LogWarning($"没有初始化格子信息,请在编辑器模式下初始化场景的格子信息(Level下的LevelEditor");
        }
    }
Пример #3
0
    public void LoadCoordDataSet()
    {
        //if (m_CoordDataSet != null) return;
        InitSceneSize();
        var sceneName = SceneManager.GetActiveScene().name;

        m_CoordDataSet = SceneCoordDataSet.CreateBySceneName(sceneName);

        if (m_CoordDataSet == null)
        {
            RecreateCoordDataSet();
        }
        Debug.Log($"载入结束:{m_CoordDataSet.GetCount()}个格子中,一共有多少格子有效:{m_CoordDataSet.GetValueSum()}");

        if (!Mathf.Approximately(m_SceneLength, m_CoordDataSet.TerrainLength) ||
            !Mathf.Approximately(m_SceneWidth, m_CoordDataSet.TerrainWidth) ||
            !Mathf.Approximately(m_TerrainBounds.min.x, m_CoordDataSet.MinX) ||
            !Mathf.Approximately(m_TerrainBounds.min.z, m_CoordDataSet.MinY))
        {
            Debug.LogError($"载入的格子数据和当前scene的terrain尺寸不匹配,请重新生成格子数据");
        }
    }