Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 public void CreateOctreeForScene(Vector3 center, float size, StreamingScene sceneStruct)
 {
     _buildingOctreeRoots.Enqueue(GetRoot(center, size));
     _buildingScenes.Enqueue(sceneStruct);
 }