Ejemplo n.º 1
0
    //***SAMPLE SCENE***
    private void SampleCurrentScene()
    {
        //get current Scene
        Scene _currentScene = SceneManager.GetActiveScene();

        //get current Scene's node
        LevelNode _currentNode = LevelNode.FindNodeByScene(_currentScene);

        //create one if not exist
        if (_currentNode == null)
        {
            return;
        }
        //_currentNode.ClearLevelConnectPort();
        _currentNode.ClearPortSet();

        //get all the enter point
        ConnectPoint[] points = FindObjectsOfType <ConnectPoint>();
        Debug.Log(points.Length);
        _currentNode.RemoveNoExistingPortSet(points);

        Vector3[] _projectedPoints = ProjectPointsToPlane(new Vector3(0, 1, 0), points);

        //This Scene contains no connect point
        if (_projectedPoints.Length < 1)
        {
            return;
        }

        //sample points' distance to sub view
        Vector3[] _subViewPoints = ProjectToSubView(_projectedPoints);

        for (int i = 0; i < _subViewPoints.Length; i++)
        {
            //create port
            //PortSet _set = _currentNode.CreateLevelPort(_subViewPoints[i], points[i].id, points[i].name);
            PortSet _set = _currentNode.CreateLevelPort(_subViewPoints[i], points[i].portSetId, points[i].name);
            points[i].portSetId = _set.setGuid;
        }

        //不mark dirty不能存檔
        EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
    }