public void SceneLoaded(string sceneName, int sceneIndex, Scene scene, StreamingScene sceneStruct, Vector4 sceneDimension) { if (sceneIndex < 0) { return; } _sceneNameToIndex.Add(sceneName, sceneIndex); _sceneDesc.Add(sceneIndex, sceneStruct); // var go = new GameObject("StreamingRoot"); // SceneManager.MoveGameObjectToScene(go, scene); // _goRoot.Add(sceneIndex, go); _goRoot.Add(sceneIndex, DefaultGo.StreamingRoot); if (_asap) { var root = _goBuilder.GetOctreeForScene( new Vector3(sceneDimension.x, sceneDimension.y, sceneDimension.z), sceneDimension.w, sceneStruct); root.OnCameraMovement(_asapPosition, 1, _resourceHandler); NewOctreeForScene(root, sceneName); } else { _goBuilder.CreateOctreeForScene(new Vector3(sceneDimension.x, sceneDimension.y, sceneDimension.z), sceneDimension.w, sceneStruct); } }
public OctreeNode GetOctreeForScene(Vector3 center, float size, StreamingScene sceneStruct) { var root = GetRoot(center, size); var count = sceneStruct.Objects.Count; for (int i = 0; i < count; i++) { var data = sceneStruct.Objects[i]; root.InsertStreamingGo(GetStreamingGo(data, sceneStruct.Index, i), data.Position, data.Size); } return(root); }
public override void ParseConfig(string xml) { StreamingScene scene = StreamingSerialization.DeserializeByString <StreamingScene>(xml); //StreamingScene scene = XmlConfigParser<StreamingScene>.Load(xml); foreach (var obj in scene.Objects) { foreach (var compData in obj.CompDataList) { compData.monoClassFullName.GetTypeByStr(); } } if (Data == null) { Data = new StreamingData(); } Data.AddScene(scene); }
public void CreateOctreeForScene(Vector3 center, float size, StreamingScene sceneStruct) { _buildingOctreeRoots.Enqueue(GetRoot(center, size)); _buildingScenes.Enqueue(sceneStruct); }