//***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()); }