internal void Apply(CelestialBody celestialBody, Transform scaledCelestialTransform, CloudsMaterial cloudsMaterial, float radius, Tools.Layer layer = Tools.Layer.Scaled) { CloudsManager.Log("Applying 2D clouds..."); Remove(); this.celestialBody = celestialBody; this.scaledCelestialTransform = scaledCelestialTransform; HalfSphere hp = new HalfSphere(radius, ref CloudMaterial, CloudShader); CloudMesh = hp.GameObject; CloudMaterial.name = "Clouds2D"; this.radius = radius; macroCloudMaterial.Radius = radius; this.cloudsMat = cloudsMaterial; this.scaledLayer = layer; CloudMaterial.SetMatrix(ShaderProperties._ShadowBodies_PROPERTY, Matrix4x4.zero); if (shadowMaterial != null) { ShadowProjectorGO = new GameObject(); ShadowProjector = ShadowProjectorGO.AddComponent<Projector>(); ShadowProjector.nearClipPlane = 10; ShadowProjector.fieldOfView = 60; ShadowProjector.aspectRatio = 1; ShadowProjector.orthographic = true; ShadowProjector.transform.parent = celestialBody.transform; ShadowProjector.material = new Material(CloudShadowShader); shadowMaterial.ApplyMaterialProperties(ShadowProjector.material); } Scaled = true; }