private void MapMagicTerrainAddPrefabManagerSingleton(Terrain terrain) { if (prefabPrototypes != null && prefabPrototypes.Count > 0) { if (prefabManagerInstance == null) { GameObject prefabManagerInstanceGO = new GameObject("GPUI Prefab Manager"); prefabManagerInstance = prefabManagerInstanceGO.AddComponent <GPUInstancerPrefabManager>(); prefabManagerInstance.isFrustumCulling = isFrustumCulling; prefabManagerInstance.isOcclusionCulling = isOcclusionCulling; prefabManagerInstance.minCullingDistance = minCullingDistance; prefabManagerInstance.autoSelectCamera = autoSelectCamera; prefabManagerInstance.cameraData.SetCamera(cameraData.mainCamera); prefabManagerInstance.cameraData.renderOnlySelectedCamera = cameraData.renderOnlySelectedCamera; prefabManagerInstance.cameraData.hiZOcclusionGenerator = null; prefabManagerInstance.InitializeCameraData(); prefabManagerInstance.enableMROnRemoveInstance = false; prefabManagerInstance.enableMROnManagerDisable = false; prefabManagerInstance.prototypeList = prefabPrototypes; prefabManagerInstance.InitializeRuntimeDataAndBuffers(); } GPUInstancerPrefabListRuntimeHandler plrh = terrain.gameObject.GetComponent <GPUInstancerPrefabListRuntimeHandler>(); if (plrh == null) { plrh = terrain.gameObject.AddComponent <GPUInstancerPrefabListRuntimeHandler>(); } plrh.runInThreads = prefabRunInThreads; plrh.SetManager(prefabManagerInstance); } }
private void MapMagicTerrainAddPrefabManager(Terrain terrain) { if (terrain.GetComponent <GPUInstancerPrefabManager>() == null && prefabPrototypes != null && prefabPrototypes.Count > 0) { GPUInstancerPrefab[] prefabList = terrain.gameObject.GetComponentsInChildren <GPUInstancerPrefab>(true); if (prefabList.Length > 0) { GPUInstancerPrefabManager newPrefabManager = terrain.gameObject.AddComponent <GPUInstancerPrefabManager>(); newPrefabManager.isFrustumCulling = isFrustumCulling; newPrefabManager.isOcclusionCulling = isOcclusionCulling; newPrefabManager.minCullingDistance = minCullingDistance; newPrefabManager.autoSelectCamera = autoSelectCamera; newPrefabManager.cameraData.SetCamera(cameraData.mainCamera); newPrefabManager.cameraData.renderOnlySelectedCamera = cameraData.renderOnlySelectedCamera; newPrefabManager.cameraData.hiZOcclusionGenerator = null; newPrefabManager.InitializeCameraData(); newPrefabManager.enableMROnManagerDisable = false; newPrefabManager.prototypeList = prefabPrototypes; newPrefabManager.RegisterPrefabInstanceList(prefabList); if (terrain.gameObject.activeSelf) { newPrefabManager.InitializeRuntimeDataAndBuffers(); } } } }