示例#1
0
 private void Awake()
 {
     WMS.Initialize();
     commandBufferManager = GetComponentInChildren <WeatherMakerCommandBufferManagerScript>();
     if (commandBufferManager == null)
     {
         Debug.LogError("CommandBufferManager needs to be set on WeatherMakerScript");
     }
     CheckPerformanceProfile();
 }
 private void Awake()
 {
     WMS.Initialize();
     if (ResourceContainer == null)
     {
         Debug.LogError("Please ensure you have set a resource container on the WeatherMakerScript, this is required to load Weather Maker resources properly");
     }
     commandBufferManager = GetComponentInChildren <WeatherMakerCommandBufferManagerScript>();
     if (commandBufferManager == null)
     {
         Debug.LogError("CommandBufferManager needs to be set on WeatherMakerScript");
     }
     CheckPerformanceProfile();
 }
        private void OnEnable()
        {
#if UNITY_EDITOR
            if (GameObject.FindObjectsOfType <WeatherMakerScript>().Length > 1)
            {
                Debug.LogError("Only one WeatherMakerScript should exist in your game. Use the WeatherMakerPrefab and call DontDestroyOnLoad.");
            }
#endif

            nullInstances.Clear();
            WMS.Initialize();
            PrecipitationManager = FindIfNull <IPrecipitationManager, WeatherMakerPrecipitationManagerScript>(PrecipitationManager);
            CloudManager         = FindIfNull <ICloudManager, WeatherMakerCloudManagerScript>(CloudManager);
            if (CloudManager == null)
            {
                CloudManager = FindIfNull <ICloudManager, WeatherMakerCloudManager2DScript>(CloudManager);
            }
            SkyManager    = FindIfNull <ISkyManager, WeatherMakerSkyManagerScript>(SkyManager);
            AuroraManager = FindIfNull <IAuroraManager, WeatherMakerAuroraManagerScript>(AuroraManager);
            FogManager    = FindIfNull <IFogManager, WeatherMakerFogManagerScript>(FogManager);
            WindManager   = FindIfNull <IWindManager, WeatherMakerWindManagerScript>(WindManager);
            ThunderAndLightningManager = FindIfNull <IThunderAndLightningManager, WeatherMakerThunderAndLightningManagerScript>(ThunderAndLightningManager);
            PlayerSoundManager         = FindIfNull <IPlayerSoundManager, WeatherMakerPlayerSoundManagerScript>(PlayerSoundManager);

            // wire up lightning bolt lights to the light manager
            if (Application.isPlaying)
            {
                if (WeatherMakerLightManagerScript.Instance != null && WeatherMakerThunderAndLightningScript.Instance != null)
                {
                    WeatherMakerThunderAndLightningScript.Instance.LightningBoltScript.LightAddedCallback   += LightningLightAdded;
                    WeatherMakerThunderAndLightningScript.Instance.LightningBoltScript.LightRemovedCallback += LightningLightRemoved;
                }
                if (transform.parent != null)
                {
                    Debug.LogError("Weather Maker prefab should not have a parent");
                }
                else if (IsPermanent)
                {
                    DontDestroyOnLoad(gameObject);
                }
            }
        }
        private static void AddChildren(WMS.Layer layer, TreeNodeCollection nodes)
        {
            if (layer.Children != null)
            {
                foreach (var child in layer.Children)
                {
                    var childNode = nodes.Add(child.Title);
                    childNode.Tag = child;
                    AddChildren(child, childNode.Nodes);
                }
            }

            if (layer.Style != null)
            {
                foreach (var style in layer.Style)
                {

                    //   layer.Style[0].
                    var styleNode = nodes.Add(style.Title);
                    styleNode.Tag = style;
                }
            }
        }
        private void AddTiledLayer(WMS.Layer wmsLayer, Style style)
        {
            double baseTileDegrees = 180;
            var totalLevels = 12;

            var styles = style != null ? style.Name : "";

            var url = FillBoundingBoxUrl(MakeWmsGetMapUrl(wmsLayer.Name, styles, 0, 0, 0, 0, 256, 256, "", ""));

            var baseLevel = 1;

            var imageType = ".png";
            double meanRadius = 300000000; //todo

            var referenceFrame = LayerManager.CurrentMap;

            var thumbUrl = "http://www.worldwidetelescope.org/wwtweb/thumbnail.aspx?name=" + referenceFrame;

            var ish = new ImageSetHelper(wmsLayer.Title, url, ImageSetType.Planet, BandPass.Visible, ProjectionType.Equirectangular, (int)(uint)url.GetHashCode32(), baseLevel, totalLevels, 512, baseTileDegrees, imageType, true, "", 0, 0, 0, false, thumbUrl, false, false, 1, 0, 0, wmsLayer.Abstract, "", "", "", meanRadius, referenceFrame);

            if (AddAsLayer.Checked == false)
            {
                Earth3d.MainWindow.CurrentImageSet = ish;
            }
            else
            {
                var layer = new ImageSetLayer(ish);
                layer.Enabled = true;
                layer.Name = wmsLayer.Title;
                layer.ReferenceFrame = LayerManager.CurrentMap;

                LayerManager.Add(layer, true);
            }
        }