public void Update () { if (!waterBase) waterBase = (WaterBase)gameObject.GetComponent(typeof(WaterBase)); if (specularLight && waterBase.sharedMaterial) waterBase.sharedMaterial.SetVector("_WorldLightDir", specularLight.transform.forward); }
private void AcquireComponents() { if (!reflection) if (transform.parent) reflection = transform.parent.GetComponent<PlanarReflection>(); else reflection = transform.GetComponent<PlanarReflection>(); if (!waterBase) if (transform.parent) waterBase = transform.parent.GetComponent<WaterBase>(); else waterBase = transform.GetComponent<WaterBase>(); }
void AcquireComponents() { if (!waterBase) { if (transform.parent) { waterBase = transform.parent.GetComponent<WaterBase>(); } else { waterBase = transform.GetComponent<WaterBase>(); } } }
// Token: 0x06002B2C RID: 11052 RVA: 0x000A0A24 File Offset: 0x0009EC24 protected void RefreshSettings() { WaterBase component = base.GetComponent <WaterBase>(); PlanarReflection component2 = base.GetComponent <PlanarReflection>(); if (!component) { return; } if (global::render.level > 0.8f) { component.waterQuality = 2; component.edgeBlend = true; } else if (global::render.level > 0.5f) { component.waterQuality = 1; component.edgeBlend = false; } else { component.waterQuality = 0; component.edgeBlend = false; } if (global::water.level != -1) { component.waterQuality = Mathf.Clamp(global::water.level - 1, 0, 2); component.edgeBlend = (global::water.level == 2); } if (component2) { component2.reflectionMask = 13111296; if (!global::water.reflection) { component2.reflectionMask = 8388608; } } }
protected void RefreshSettings() { WaterBase component = base.GetComponent <WaterBase>(); PlanarReflection planarReflection = base.GetComponent <PlanarReflection>(); if (!component) { return; } if (render.level > 0.8f) { component.waterQuality = WaterQuality.High; component.edgeBlend = true; } else if (render.level <= 0.5f) { component.waterQuality = WaterQuality.Low; component.edgeBlend = false; } else { component.waterQuality = WaterQuality.Medium; component.edgeBlend = false; } if (water.level != -1) { component.waterQuality = (WaterQuality)Mathf.Clamp(water.level - 1, 0, 2); component.edgeBlend = water.level == 2; } if (planarReflection) { planarReflection.reflectionMask = 13111296; if (!water.reflection) { planarReflection.reflectionMask = 8388608; } } }
protected void RefreshSettings() { WaterBase component = base.GetComponent <WaterBase>(); PlanarReflection reflection = base.GetComponent <PlanarReflection>(); if (component != null) { if (render.level > 0.8f) { component.waterQuality = WaterQuality.High; component.edgeBlend = true; } else if (render.level > 0.5f) { component.waterQuality = WaterQuality.Medium; component.edgeBlend = false; } else { component.waterQuality = WaterQuality.Low; component.edgeBlend = false; } if (water.level != -1) { component.waterQuality = (WaterQuality)Mathf.Clamp(water.level - 1, 0, 2); component.edgeBlend = water.level == 2; } if (reflection != null) { reflection.reflectionMask = 0xc81000; if (!water.reflection) { reflection.reflectionMask = 0x800000; } } } }
public override void OnInspectorGUI() { serObj.Update(); GameObject go = ((GerstnerDisplace)serObj.targetObject).gameObject; WaterBase wb = (WaterBase)go.GetComponent(typeof(WaterBase)); Material sharedWaterMaterial = wb.sharedMaterial; GUILayout.Label("Animates vertices using up 4 generated waves", EditorStyles.miniBoldLabel); if (sharedWaterMaterial) { Vector4 amplitude = WaterEditorUtility.GetMaterialVector("_GAmplitude", sharedWaterMaterial); Vector4 frequency = WaterEditorUtility.GetMaterialVector("_GFrequency", sharedWaterMaterial); Vector4 steepness = WaterEditorUtility.GetMaterialVector("_GSteepness", sharedWaterMaterial); Vector4 speed = WaterEditorUtility.GetMaterialVector("_GSpeed", sharedWaterMaterial); Vector4 directionAB = WaterEditorUtility.GetMaterialVector("_GDirectionAB", sharedWaterMaterial); Vector4 directionCD = WaterEditorUtility.GetMaterialVector("_GDirectionCD", sharedWaterMaterial); amplitude = EditorGUILayout.Vector4Field("Amplitude (Height offset)", amplitude); frequency = EditorGUILayout.Vector4Field("Frequency (Tiling)", frequency); steepness = EditorGUILayout.Vector4Field("Steepness", steepness); speed = EditorGUILayout.Vector4Field("WalkSpeed", speed); directionAB = EditorGUILayout.Vector4Field("Direction scale (Wave 1 (X,Y) and 2 (Z,W))", directionAB); directionCD = EditorGUILayout.Vector4Field("Direction scale (Wave 3 (X,Y) and 4 (Z,W))", directionCD); if (GUI.changed) { WaterEditorUtility.SetMaterialVector("_GAmplitude", amplitude, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GFrequency", frequency, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GSteepness", steepness, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GSpeed", speed, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GDirectionAB", directionAB, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GDirectionCD", directionCD, sharedWaterMaterial); } /* * * Vector4 animationTiling = WaterEditorUtility.GetMaterialVector("_AnimationTiling", sharedWaterMaterial); * Vector4 animationDirection = WaterEditorUtility.GetMaterialVector("_AnimationDirection", sharedWaterMaterial); * * float firstTilingU = animationTiling.x*100.0F; * float firstTilingV = animationTiling.y*100.0F; * float firstDirectionU = animationDirection.x; * float firstDirectionV = animationDirection.y; * * float secondTilingU = animationTiling.z*100.0F; * float secondTilingV = animationTiling.w*100.0F; * float secondDirectionU = animationDirection.z; * float secondDirectionV = animationDirection.w; * * * EditorGUILayout.BeginHorizontal (); * firstTilingU = EditorGUILayout.FloatField("First Tiling U", firstTilingU); * firstTilingV = EditorGUILayout.FloatField("First Tiling V", firstTilingV); * EditorGUILayout.EndHorizontal (); * EditorGUILayout.BeginHorizontal (); * secondTilingU = EditorGUILayout.FloatField("Second Tiling U", secondTilingU); * secondTilingV = EditorGUILayout.FloatField("Second Tiling V", secondTilingV); * EditorGUILayout.EndHorizontal (); * * EditorGUILayout.BeginHorizontal (); * firstDirectionU = EditorGUILayout.FloatField("1st Animation U", firstDirectionU); * firstDirectionV = EditorGUILayout.FloatField("1st Animation V", firstDirectionV); * EditorGUILayout.EndHorizontal (); * EditorGUILayout.BeginHorizontal (); * secondDirectionU = EditorGUILayout.FloatField("2nd Animation U", secondDirectionU); * secondDirectionV = EditorGUILayout.FloatField("2nd Animation V", secondDirectionV); * EditorGUILayout.EndHorizontal (); * * animationDirection = new Vector4(firstDirectionU,firstDirectionV, secondDirectionU,secondDirectionV); * animationTiling = new Vector4(firstTilingU/100.0F,firstTilingV/100.0F, secondTilingU/100.0F,secondTilingV/100.0F); * * WaterEditorUtility.SetMaterialVector("_AnimationTiling", animationTiling, sharedWaterMaterial); * WaterEditorUtility.SetMaterialVector("_AnimationDirection", animationDirection, sharedWaterMaterial); * * EditorGUILayout.Separator (); * * GUILayout.Label ("Displacement Strength", EditorStyles.boldLabel); * * float heightDisplacement = WaterEditorUtility.GetMaterialFloat("_HeightDisplacement", sharedWaterMaterial); * * heightDisplacement = EditorGUILayout.Slider("Height", heightDisplacement, 0.0F, 5.0F); * WaterEditorUtility.SetMaterialFloat("_HeightDisplacement", heightDisplacement, sharedWaterMaterial); */ } serObj.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serObj.Update(); waterBase = (WaterBase)serObj.targetObject; oceanBase = ((WaterBase)serObj.targetObject).gameObject; if(!oceanBase) return; GUILayout.Label ("This script helps adjusting water material properties", EditorStyles.miniBoldLabel); EditorGUILayout.PropertyField(sharedMaterial, new GUIContent("Material")); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) { sharedMaterial.objectReferenceValue = (Object)WaterEditorUtility.LocateValidWaterMaterial(oceanBase.transform); serObj.ApplyModifiedProperties(); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) return; } EditorGUILayout.Separator (); GUILayout.Label ("Overall Quality", EditorStyles.boldLabel); EditorGUILayout.PropertyField(waterQuality, new GUIContent("Quality")); EditorGUILayout.PropertyField(edgeBlend, new GUIContent("Edge blend?")); if(waterQuality.intValue > (int)WaterQuality.Low && !SystemInfo.supportsRenderTextures) EditorGUILayout.HelpBox("Water features not supported", MessageType.Warning); if(edgeBlend.boolValue && !SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.Depth)) EditorGUILayout.HelpBox("Edge blend not supported", MessageType.Warning); EditorGUILayout.Separator (); bool hasShore = oceanMaterial.HasProperty("_ShoreTex"); GUILayout.Label ("Main Colors", EditorStyles.boldLabel); GUILayout.Label ("Alpha values define blending with realtime textures", EditorStyles.miniBoldLabel); WaterEditorUtility.SetMaterialColor("_BaseColor", EditorGUILayout.ColorField("Refraction", WaterEditorUtility.GetMaterialColor("_BaseColor", oceanMaterial)), oceanMaterial); WaterEditorUtility.SetMaterialColor("_ReflectionColor", EditorGUILayout.ColorField("Reflection", WaterEditorUtility.GetMaterialColor("_ReflectionColor", oceanMaterial)), oceanMaterial); EditorGUILayout.Separator (); GUILayout.Label ("Main Textures", EditorStyles.boldLabel); GUILayout.Label ("Used for small waves (bumps), foam and white caps", EditorStyles.miniBoldLabel); WaterEditorUtility.SetMaterialTexture("_BumpMap",(Texture)EditorGUILayout.ObjectField("Normals", WaterEditorUtility.GetMaterialTexture("_BumpMap", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); if (hasShore) WaterEditorUtility.SetMaterialTexture("_ShoreTex", (Texture)EditorGUILayout.ObjectField("Shore & Foam", WaterEditorUtility.GetMaterialTexture("_ShoreTex", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); Vector4 animationTiling; Vector4 animationDirection; Vector2 firstTiling; Vector2 secondTiling; Vector2 firstDirection; Vector2 secondDirection; animationTiling = WaterEditorUtility.GetMaterialVector("_BumpTiling", oceanMaterial); animationDirection = WaterEditorUtility.GetMaterialVector("_BumpDirection", oceanMaterial); firstTiling = new Vector2(animationTiling.x*100.0F,animationTiling.y*100.0F); secondTiling = new Vector2(animationTiling.z*100.0F,animationTiling.w*100.0F); firstTiling = EditorGUILayout.Vector2Field("Tiling 1", firstTiling); secondTiling = EditorGUILayout.Vector2Field("Tiling 2", secondTiling); //firstTiling.x = EditorGUILayout.FloatField("1st Tiling U", firstTiling.x); //firstTiling.y = EditorGUILayout.FloatField("1st Tiling V", firstTiling.y); //secondTiling.x = EditorGUILayout.FloatField("2nd Tiling U", secondTiling.x); //secondTiling.y = EditorGUILayout.FloatField("2nd Tiling V", secondTiling.y); firstDirection = new Vector2(animationDirection.x,animationDirection.y); secondDirection = new Vector2(animationDirection.z,animationDirection.w); //firstDirection.x = EditorGUILayout.FloatField("1st Animation U", firstDirection.x); //firstDirection.y = EditorGUILayout.FloatField("1st Animation V", firstDirection.y); //secondDirection.x = EditorGUILayout.FloatField("2nd Animation U", secondDirection.x); //secondDirection.y = EditorGUILayout.FloatField("2nd Animation V", secondDirection.y); firstDirection = EditorGUILayout.Vector2Field("Direction 1", firstDirection); secondDirection = EditorGUILayout.Vector2Field("Direction 2", secondDirection); animationTiling = new Vector4(firstTiling.x/100.0F,firstTiling.y/100.0F, secondTiling.x/100.0F,secondTiling.y/100.0F); animationDirection = new Vector4(firstDirection.x,firstDirection.y, secondDirection.x,secondDirection.y); WaterEditorUtility.SetMaterialVector("_BumpTiling", animationTiling, oceanMaterial); WaterEditorUtility.SetMaterialVector("_BumpDirection", animationDirection, oceanMaterial); Vector4 displacementParameter = WaterEditorUtility.GetMaterialVector("_DistortParams", oceanMaterial); Vector4 fade = WaterEditorUtility.GetMaterialVector("_InvFadeParemeter", oceanMaterial); EditorGUILayout.Separator (); GUILayout.Label ("Normals", EditorStyles.boldLabel); GUILayout.Label ("Displacement for fresnel, specular and reflection/refraction", EditorStyles.miniBoldLabel); float gerstnerNormalIntensity = WaterEditorUtility.GetMaterialFloat("_GerstnerIntensity", oceanMaterial); gerstnerNormalIntensity = EditorGUILayout.Slider("Per Vertex", gerstnerNormalIntensity, -2.5F, 2.5F); WaterEditorUtility.SetMaterialFloat("_GerstnerIntensity", gerstnerNormalIntensity, oceanMaterial); displacementParameter.x = EditorGUILayout.Slider("Per Pixel", displacementParameter.x, -4.0F, 4.0F); displacementParameter.y = EditorGUILayout.Slider("Distortion", displacementParameter.y, -0.5F, 0.5F); // fade.z = EditorGUILayout.Slider("Distance fade", fade.z, 0.0f, 0.5f); EditorGUILayout.Separator (); GUILayout.Label ("Fresnel", EditorStyles.boldLabel); GUILayout.Label ("Defines reflection to refraction relation", EditorStyles.miniBoldLabel); if(!oceanMaterial.HasProperty("_Fresnel")) { if(oceanMaterial.HasProperty("_FresnelScale")) { float fresnelScale = EditorGUILayout.Slider("Intensity", WaterEditorUtility.GetMaterialFloat("_FresnelScale", oceanMaterial), 0.1F, 4.0F); WaterEditorUtility.SetMaterialFloat("_FresnelScale", fresnelScale, oceanMaterial); } displacementParameter.z = EditorGUILayout.Slider("Power", displacementParameter.z, 0.1F, 10.0F); displacementParameter.w = EditorGUILayout.Slider("Bias", displacementParameter.w, -3.0F, 3.0F); } else { Texture fresnelTex = (Texture)EditorGUILayout.ObjectField( "Ramp", (Texture)WaterEditorUtility.GetMaterialTexture("_Fresnel", oceanMaterial), typeof(Texture), false); WaterEditorUtility.SetMaterialTexture("_Fresnel", fresnelTex, oceanMaterial); } EditorGUILayout.Separator (); WaterEditorUtility.SetMaterialVector("_DistortParams", displacementParameter, oceanMaterial); if (edgeBlend.boolValue) { GUILayout.Label ("Fading", EditorStyles.boldLabel); fade.x = EditorGUILayout.Slider("Edge fade", fade.x, 0.001f, 3.0f); if(hasShore) fade.y = EditorGUILayout.Slider("Shore fade", fade.y, 0.001f, 3.0f); fade.w = EditorGUILayout.Slider("Extinction fade", fade.w, 0.0f, 2.5f); WaterEditorUtility.SetMaterialVector("_InvFadeParemeter", fade, oceanMaterial); } EditorGUILayout.Separator (); if(oceanMaterial.HasProperty("_Foam")) { GUILayout.Label ("Foam", EditorStyles.boldLabel); Vector4 foam = WaterEditorUtility.GetMaterialVector("_Foam", oceanMaterial); foam.x = EditorGUILayout.Slider("Intensity", foam.x, 0.0F, 1.0F); foam.y = EditorGUILayout.Slider("Cutoff", foam.y, 0.0F, 1.0F); WaterEditorUtility.SetMaterialVector("_Foam", foam, oceanMaterial); } serObj.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serObj.Update(); waterBase = (WaterBase)serObj.targetObject; oceanBase = ((WaterBase)serObj.targetObject).gameObject; if (!oceanBase) { return; } GUILayout.Label("This script helps adjusting water material properties", EditorStyles.miniBoldLabel); EditorGUILayout.PropertyField(sharedMaterial, new GUIContent("Material")); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) { sharedMaterial.objectReferenceValue = (Object)WaterEditorUtility.LocateValidWaterMaterial(oceanBase.transform); serObj.ApplyModifiedProperties(); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) { return; } } EditorGUILayout.Separator(); GUILayout.Label("Overall Quality", EditorStyles.boldLabel); EditorGUILayout.PropertyField(waterQuality, new GUIContent("Quality")); EditorGUILayout.PropertyField(edgeBlend, new GUIContent("Edge blend?")); EditorGUILayout.Separator(); bool hasShore = oceanMaterial.HasProperty("_ShoreTex"); GUILayout.Label("Main Colors", EditorStyles.boldLabel); GUILayout.Label("Alpha values define blending with realtime textures", EditorStyles.miniBoldLabel); EditorGUILayout.BeginHorizontal(); WaterEditorUtility.SetMaterialColor("_BaseColor", EditorGUILayout.ColorField("Refraction", WaterEditorUtility.GetMaterialColor("_BaseColor", oceanMaterial)), oceanMaterial); WaterEditorUtility.SetMaterialColor("_ReflectionColor", EditorGUILayout.ColorField("Reflection", WaterEditorUtility.GetMaterialColor("_ReflectionColor", oceanMaterial)), oceanMaterial); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); GUILayout.Label("Main Textures", EditorStyles.boldLabel); GUILayout.Label("Used for small waves (bumps), foam and white caps", EditorStyles.miniBoldLabel); EditorGUILayout.BeginHorizontal(); WaterEditorUtility.SetMaterialTexture("_BumpMap", (Texture)EditorGUILayout.ObjectField("Normals", WaterEditorUtility.GetMaterialTexture("_BumpMap", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); if (hasShore) { WaterEditorUtility.SetMaterialTexture("_ShoreTex", (Texture)EditorGUILayout.ObjectField("Shore & Foam", WaterEditorUtility.GetMaterialTexture("_ShoreTex", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); } EditorGUILayout.EndHorizontal(); Vector4 animationTiling; Vector4 animationDirection; Vector2 firstTiling; Vector2 secondTiling; Vector2 firstDirection; Vector2 secondDirection; animationTiling = WaterEditorUtility.GetMaterialVector("_BumpTiling", oceanMaterial); animationDirection = WaterEditorUtility.GetMaterialVector("_BumpDirection", oceanMaterial); firstTiling = new Vector2(animationTiling.x * 100.0F, animationTiling.y * 100.0F); secondTiling = new Vector2(animationTiling.z * 100.0F, animationTiling.w * 100.0F); EditorGUILayout.BeginHorizontal(); firstTiling.x = EditorGUILayout.FloatField("1st Tiling U", firstTiling.x); firstTiling.y = EditorGUILayout.FloatField("1st Tiling V", firstTiling.y); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); secondTiling.x = EditorGUILayout.FloatField("2nd Tiling U", secondTiling.x); secondTiling.y = EditorGUILayout.FloatField("2nd Tiling V", secondTiling.y); EditorGUILayout.EndHorizontal(); firstDirection = new Vector2(animationDirection.x, animationDirection.y); secondDirection = new Vector2(animationDirection.z, animationDirection.w); EditorGUILayout.BeginHorizontal(); firstDirection.x = EditorGUILayout.FloatField("1st Animation U", firstDirection.x); firstDirection.y = EditorGUILayout.FloatField("1st Animation V", firstDirection.y); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); secondDirection.x = EditorGUILayout.FloatField("2nd Animation U", secondDirection.x); secondDirection.y = EditorGUILayout.FloatField("2nd Animation V", secondDirection.y); EditorGUILayout.EndHorizontal(); animationTiling = new Vector4(firstTiling.x / 100.0F, firstTiling.y / 100.0F, secondTiling.x / 100.0F, secondTiling.y / 100.0F); animationDirection = new Vector4(firstDirection.x, firstDirection.y, secondDirection.x, secondDirection.y); WaterEditorUtility.SetMaterialVector("_BumpTiling", animationTiling, oceanMaterial); WaterEditorUtility.SetMaterialVector("_BumpDirection", animationDirection, oceanMaterial); Vector4 displacementParameter = WaterEditorUtility.GetMaterialVector("_DistortParams", oceanMaterial); Vector4 fade = WaterEditorUtility.GetMaterialVector("_InvFadeParemeter", oceanMaterial); EditorGUILayout.Separator(); GUILayout.Label("Normals", EditorStyles.boldLabel); GUILayout.Label("Displacement for fresnel, specular and reflection/refraction", EditorStyles.miniBoldLabel); float gerstnerNormalIntensity = WaterEditorUtility.GetMaterialFloat("_GerstnerIntensity", oceanMaterial); gerstnerNormalIntensity = EditorGUILayout.Slider("Per Vertex", gerstnerNormalIntensity, -2.5F, 2.5F); WaterEditorUtility.SetMaterialFloat("_GerstnerIntensity", gerstnerNormalIntensity, oceanMaterial); displacementParameter.x = EditorGUILayout.Slider("Per Pixel", displacementParameter.x, -4.0F, 4.0F); displacementParameter.y = EditorGUILayout.Slider("Distortion", displacementParameter.y, -0.5F, 0.5F); // fade.z = EditorGUILayout.Slider("Distance fade", fade.z, 0.0f, 0.5f); EditorGUILayout.Separator(); GUILayout.Label("Fresnel", EditorStyles.boldLabel); GUILayout.Label("Defines reflection to refraction relation", EditorStyles.miniBoldLabel); if (!oceanMaterial.HasProperty("_Fresnel")) { if (oceanMaterial.HasProperty("_FresnelScale")) { float fresnelScale = EditorGUILayout.Slider("Intensity", WaterEditorUtility.GetMaterialFloat("_FresnelScale", oceanMaterial), 0.1F, 4.0F); WaterEditorUtility.SetMaterialFloat("_FresnelScale", fresnelScale, oceanMaterial); } displacementParameter.z = EditorGUILayout.Slider("Power", displacementParameter.z, 0.1F, 10.0F); displacementParameter.w = EditorGUILayout.Slider("Bias", displacementParameter.w, -3.0F, 3.0F); } else { Texture fresnelTex = (Texture)EditorGUILayout.ObjectField( "Ramp", (Texture)WaterEditorUtility.GetMaterialTexture("_Fresnel", oceanMaterial), typeof(Texture), false); WaterEditorUtility.SetMaterialTexture("_Fresnel", fresnelTex, oceanMaterial); } EditorGUILayout.Separator(); WaterEditorUtility.SetMaterialVector("_DistortParams", displacementParameter, oceanMaterial); if (edgeBlend.boolValue) { GUILayout.Label("Fading", EditorStyles.boldLabel); fade.x = EditorGUILayout.Slider("Edge fade", fade.x, 0.0f, 0.3f); if (hasShore) { fade.y = EditorGUILayout.Slider("Shore fade", fade.y, 0.0f, 0.3f); } fade.w = EditorGUILayout.Slider("Extinction fade", fade.w, 0.0f, 2.5f); WaterEditorUtility.SetMaterialVector("_InvFadeParemeter", fade, oceanMaterial); } EditorGUILayout.Separator(); if (oceanMaterial.HasProperty("_Foam")) { GUILayout.Label("Foam", EditorStyles.boldLabel); Vector4 foam = WaterEditorUtility.GetMaterialVector("_Foam", oceanMaterial); foam.x = EditorGUILayout.Slider("Intensity", foam.x, 0.0F, 1.0F); foam.y = EditorGUILayout.Slider("Cutoff", foam.y, 0.0F, 1.0F); WaterEditorUtility.SetMaterialVector("_Foam", foam, oceanMaterial); } serObj.ApplyModifiedProperties(); }
public void Start() { if(!waterBase) waterBase = (WaterBase) gameObject.GetComponent(typeof(WaterBase)); }
public override void OnInspectorGUI() { serObj.Update(); GameObject go = ((GerstnerDisplace)serObj.targetObject).gameObject; WaterBase wb = (WaterBase)go.GetComponent(typeof(WaterBase)); Material sharedWaterMaterial = wb.sharedMaterial; GUILayout.Label("Animates vertices using up to 4 generated waves", EditorStyles.miniBoldLabel); if (sharedWaterMaterial) { Vector4 amplitude = WaterEditorUtility.GetMaterialVector("_GAmplitude", sharedWaterMaterial); Vector4 frequency = WaterEditorUtility.GetMaterialVector("_GFrequency", sharedWaterMaterial); Vector4 steepness = WaterEditorUtility.GetMaterialVector("_GSteepness", sharedWaterMaterial); Vector4 speed = WaterEditorUtility.GetMaterialVector("_GSpeed", sharedWaterMaterial); Vector4 directionAB = WaterEditorUtility.GetMaterialVector("_GDirectionAB", sharedWaterMaterial); Vector4 directionCD = WaterEditorUtility.GetMaterialVector("_GDirectionCD", sharedWaterMaterial); float amplitudeA = amplitude.x; float amplitudeB = amplitude.y; float amplitudeC = amplitude.z; float amplitudeD = amplitude.w; float frequencyA = frequency.x; float frequencyB = frequency.y; float frequencyC = frequency.z; float frequencyD = frequency.w; float steepnessA = steepness.x; float steepnessB = steepness.y; float steepnessC = steepness.z; float steepnessD = steepness.w; float speedA = speed.x; float speedB = speed.y; float speedC = speed.z; float speedD = speed.w; float xDirectionA = directionAB.x; float yDirectionA = directionAB.y; float xDirectionB = directionAB.z; float yDirectionB = directionAB.w; float xDirectionC = directionCD.x; float yDirectionC = directionCD.y; float xDirectionD = directionCD.z; float yDirectionD = directionCD.w; GUILayout.Label("Wave A", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); amplitudeA = EditorGUILayout.FloatField("Amplitude", amplitudeA); frequencyA = EditorGUILayout.FloatField("Frequency", frequencyA); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); steepnessA = EditorGUILayout.FloatField("Steepness", steepnessA); speedA = EditorGUILayout.FloatField("Speed", speedA); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); xDirectionA = EditorGUILayout.FloatField("Direction (X)", xDirectionA); yDirectionA = EditorGUILayout.FloatField("Direction (Y)", yDirectionA); EditorGUILayout.EndHorizontal(); GUILayout.Label("Wave B", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); amplitudeB = EditorGUILayout.FloatField("Amplitude", amplitudeB); frequencyB = EditorGUILayout.FloatField("Frequency", frequencyB); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); steepnessB = EditorGUILayout.FloatField("Steepness", steepnessB); speedB = EditorGUILayout.FloatField("Speed", speedB); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); xDirectionB = EditorGUILayout.FloatField("Direction (X)", xDirectionB); yDirectionB = EditorGUILayout.FloatField("Direction (Y)", yDirectionB); EditorGUILayout.EndHorizontal(); GUILayout.Label("Wave C", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); amplitudeC = EditorGUILayout.FloatField("Amplitude", amplitudeC); frequencyC = EditorGUILayout.FloatField("Frequency", frequencyC); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); steepnessC = EditorGUILayout.FloatField("Steepness", steepnessC); speedC = EditorGUILayout.FloatField("Speed", speedC); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); xDirectionC = EditorGUILayout.FloatField("Direction (X)", xDirectionC); yDirectionC = EditorGUILayout.FloatField("Direction (Y)", yDirectionC); EditorGUILayout.EndHorizontal(); GUILayout.Label("Wave D", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); amplitudeD = EditorGUILayout.FloatField("Amplitude", amplitudeD); frequencyD = EditorGUILayout.FloatField("Frequency", frequencyD); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); steepnessD = EditorGUILayout.FloatField("Steepness", steepnessD); speedD = EditorGUILayout.FloatField("Speed", speedD); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); xDirectionD = EditorGUILayout.FloatField("Direction (X)", xDirectionD); yDirectionD = EditorGUILayout.FloatField("Direction (Y)", yDirectionD); EditorGUILayout.EndHorizontal(); amplitude = new Vector4(amplitudeA, amplitudeB, amplitudeC, amplitudeD); frequency = new Vector4(frequencyA, frequencyB, frequencyC, frequencyD); steepness = new Vector4(steepnessA, steepnessB, steepnessC, steepnessD); speed = new Vector4(speedA, speedB, speedC, speedD); float dirALen = 1.0f; float dirBLen = 1.0f; float dirCLen = 1.0f; float dirDLen = 1.0f; directionAB = new Vector4(xDirectionA / dirALen, yDirectionA / dirALen, xDirectionB / dirBLen, yDirectionB / dirBLen); directionCD = new Vector4(xDirectionC / dirCLen, yDirectionC / dirCLen, xDirectionD / dirDLen, yDirectionD / dirDLen); if (GUI.changed) { WaterEditorUtility.SetMaterialVector("_GAmplitude", amplitude, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GFrequency", frequency, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GSteepness", steepness, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GSpeed", speed, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GDirectionAB", directionAB, sharedWaterMaterial); WaterEditorUtility.SetMaterialVector("_GDirectionCD", directionCD, sharedWaterMaterial); } /* * * Vector4 animationTiling = WaterEditorUtility.GetMaterialVector("_AnimationTiling", sharedWaterMaterial); * Vector4 animationDirection = WaterEditorUtility.GetMaterialVector("_AnimationDirection", sharedWaterMaterial); * * float firstTilingU = animationTiling.x*100.0F; * float firstTilingV = animationTiling.y*100.0F; * float firstDirectionU = animationDirection.x; * float firstDirectionV = animationDirection.y; * * float secondTilingU = animationTiling.z*100.0F; * float secondTilingV = animationTiling.w*100.0F; * float secondDirectionU = animationDirection.z; * float secondDirectionV = animationDirection.w; * * * EditorGUILayout.BeginHorizontal (); * firstTilingU = EditorGUILayout.FloatField("First Tiling U", firstTilingU); * firstTilingV = EditorGUILayout.FloatField("First Tiling V", firstTilingV); * EditorGUILayout.EndHorizontal (); * EditorGUILayout.BeginHorizontal (); * secondTilingU = EditorGUILayout.FloatField("Second Tiling U", secondTilingU); * secondTilingV = EditorGUILayout.FloatField("Second Tiling V", secondTilingV); * EditorGUILayout.EndHorizontal (); * * EditorGUILayout.BeginHorizontal (); * firstDirectionU = EditorGUILayout.FloatField("1st Animation U", firstDirectionU); * firstDirectionV = EditorGUILayout.FloatField("1st Animation V", firstDirectionV); * EditorGUILayout.EndHorizontal (); * EditorGUILayout.BeginHorizontal (); * secondDirectionU = EditorGUILayout.FloatField("2nd Animation U", secondDirectionU); * secondDirectionV = EditorGUILayout.FloatField("2nd Animation V", secondDirectionV); * EditorGUILayout.EndHorizontal (); * * animationDirection = new Vector4(firstDirectionU,firstDirectionV, secondDirectionU,secondDirectionV); * animationTiling = new Vector4(firstTilingU/100.0F,firstTilingV/100.0F, secondTilingU/100.0F,secondTilingV/100.0F); * * WaterEditorUtility.SetMaterialVector("_AnimationTiling", animationTiling, sharedWaterMaterial); * WaterEditorUtility.SetMaterialVector("_AnimationDirection", animationDirection, sharedWaterMaterial); * * EditorGUILayout.Separator (); * * GUILayout.Label ("Displacement Strength", EditorStyles.boldLabel); * * float heightDisplacement = WaterEditorUtility.GetMaterialFloat("_HeightDisplacement", sharedWaterMaterial); * * heightDisplacement = EditorGUILayout.Slider("Height", heightDisplacement, 0.0F, 5.0F); * WaterEditorUtility.SetMaterialFloat("_HeightDisplacement", heightDisplacement, sharedWaterMaterial); */ } serObj.ApplyModifiedProperties(); }
public void Start() { waterBase = (WaterBase)GetComponent(typeof(WaterBase)); }
private void Start() { this.sky = (TOD_Sky)UnityEngine.Object.FindObjectOfType(typeof(TOD_Sky)); this.water = base.GetComponent<WaterBase>(); }
public void Start() { waterBase = GetComponent <WaterBase>(); }
public override void LoadContent() { switchCamera(); midTerrain = new Vector3(terrain.terrainWidth / 2, waterLevel, terrain.terrainLength / 2); //Create water water = new WaterBase(midTerrain, waterLevel, new Vector2(terrain.TerrainWidth, terrain.TerrainLength), baseWaterKey, waveKey, baseWaterRowX, baseWaterRowY, "water", amountWaves, Game); Game.Components.Add(water); //Adding the models Models.AddModels addModels = new Models.AddModels(Game, models, terrain, modelmapKey, Game.Content); foreach (Models.LFModel model in models) if (!Game.Components.Contains(model)) Game.Components.Add(model); //Load songs. this.smallFireSong = Game.Assets.Load<Song>("flamesmall"); this.mediumFireSong = Game.Assets.Load<Song>("flamemedium"); this.bigFireSong = Game.Assets.Load<Song>("flamebig"); this.songPlayTimeCounter = 0; this.currentlyPlaying = this.smallFireSong; MediaPlayer.Play(this.currentlyPlaying); //Load Soundeffects. SoundEffect s = Game.Assets.Load<SoundEffect>("collectmeteor"); this.collectMeteorInstance = s.CreateInstance(); s = Game.Assets.Load<SoundEffect>("treefall"); this.treeFallInstance = s.CreateInstance(); s = Game.Assets.Load<SoundEffect>("watersplash"); this.waterSplash = s.CreateInstance(); s = Game.Assets.Load<SoundEffect>("burnsomething"); this.burnSomething = s.CreateInstance(); s = Game.Assets.Load<SoundEffect>("collectstar"); this.collectStarInstance = s.CreateInstance(); foreach (Models.LFModel model in models) { if (model is Coal) { Vector3 pos = model.Position + new Vector3(0, 0.5f, -1.5f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(6), Game.Assets.Load<Texture2D>("circle"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } else if (model is Meteoriet) { Vector3 pos = model.Position + new Vector3(0, 32, 0); BillBoard.VerticalBillBoard beam = new BillBoard.VerticalBillBoard(pos, pos.Y, new Vector2(6, 50), Game.Assets.Load<Texture2D>("lightbeam"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(beam); } else if (model is Tree && this is States.GreenHills.Tutorial) { Vector3 pos = model.Position + new Vector3(0, 0.5f, 0f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(7), Game.Assets.Load<Texture2D>("circletree"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } } foreach (Models.LFModel model in models) { if (model is Meteoriet) { Vector3 pos = model.Position + new Vector3(0.5f, 0.5f, 0f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(8), Game.Assets.Load<Texture2D>("circle"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } } // If there is a load file, load the game from that point. if (loadName != "") { loadProgress(loadName); } //Set the player's position player.Position = this.terrain.GetHeightAtPosition(startPosition.X, startPosition.Z, 0); //Create the sky sky = new Sky(Game, Game.Assets.Load<TextureCube>("sky")); Game.Components.Add(sky); }
public void Start() { waterBase = (WaterBase)gameObject.GetComponent(typeof(WaterBase)); }
public void Start() { this.waterBase = (WaterBase)base.gameObject.GetComponent(typeof(WaterBase)); }
public override void OnInspectorGUI() { serObj.Update(); waterBase = (WaterBase)serObj.targetObject; oceanBase = ((WaterBase)serObj.targetObject).gameObject; if(!oceanBase) return; GUILayout.Label ("Materials serialized properties tweaking", EditorStyles.miniBoldLabel); EditorGUILayout.PropertyField(sharedMaterial, new GUIContent("Material")); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) { sharedMaterial.objectReferenceValue = (Object)WaterEditorUtility.LocateValidWaterMaterial(oceanBase.transform); serObj.ApplyModifiedProperties(); oceanMaterial = (Material)sharedMaterial.objectReferenceValue; if (!oceanMaterial) return; } EditorGUILayout.Separator (); GUILayout.Label ("Overall quality", EditorStyles.boldLabel); EditorGUILayout.PropertyField(waterQuality, new GUIContent("Quality")); EditorGUILayout.PropertyField(edgeBlend, new GUIContent("Edge blend?")); EditorGUILayout.Separator (); bool hasShore = oceanMaterial.HasProperty("_ShoreTex"); GUILayout.Label ("Color Blending", EditorStyles.boldLabel); GUILayout.Label ("Alpha values blending from realtime textures", EditorStyles.miniBoldLabel); EditorGUILayout.BeginHorizontal (); WaterEditorUtility.SetMaterialColor("_BaseColor", EditorGUILayout.ColorField("Refraction", WaterEditorUtility.GetMaterialColor("_BaseColor", oceanMaterial)), oceanMaterial); WaterEditorUtility.SetMaterialColor("_ReflectionColor", EditorGUILayout.ColorField("Reflection", WaterEditorUtility.GetMaterialColor("_ReflectionColor", oceanMaterial)), oceanMaterial); EditorGUILayout.EndHorizontal (); EditorGUILayout.Separator (); GUILayout.Label ("Main Textures", EditorStyles.boldLabel); EditorGUILayout.BeginHorizontal(); WaterEditorUtility.SetMaterialTexture("_BumpMap",(Texture)EditorGUILayout.ObjectField("Normals", WaterEditorUtility.GetMaterialTexture("_BumpMap", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); if (hasShore) WaterEditorUtility.SetMaterialTexture("_ShoreTex", (Texture)EditorGUILayout.ObjectField("Shore & Foam", WaterEditorUtility.GetMaterialTexture("_ShoreTex", waterBase.sharedMaterial), typeof(Texture), false), waterBase.sharedMaterial); EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator (); Vector4 animationTiling; Vector4 animationDirection; Vector2 firstTiling; Vector2 secondTiling; Vector2 firstDirection; Vector2 secondDirection; GUILayout.Label ("Waves (Bump)", EditorStyles.boldLabel); GUILayout.Label ("Via two scrolling normal maps", EditorStyles.miniBoldLabel); animationTiling = WaterEditorUtility.GetMaterialVector("_BumpTiling", oceanMaterial); animationDirection = WaterEditorUtility.GetMaterialVector("_BumpDirection", oceanMaterial); firstTiling = new Vector2(animationTiling.x*100.0F,animationTiling.y*100.0F); secondTiling = new Vector2(animationTiling.z*100.0F,animationTiling.w*100.0F); EditorGUILayout.BeginHorizontal (); firstTiling.x = EditorGUILayout.FloatField("1st Tiling U", firstTiling.x); firstTiling.y = EditorGUILayout.FloatField("1st Tiling V", firstTiling.y); EditorGUILayout.EndHorizontal (); EditorGUILayout.BeginHorizontal (); secondTiling.x = EditorGUILayout.FloatField("2nd Tiling U", secondTiling.x); secondTiling.y = EditorGUILayout.FloatField("2nd Tiling V", secondTiling.y); EditorGUILayout.EndHorizontal (); firstDirection = new Vector2(animationDirection.x,animationDirection.y); secondDirection = new Vector2(animationDirection.z,animationDirection.w); EditorGUILayout.BeginHorizontal (); firstDirection.x = EditorGUILayout.FloatField("1st Animation U", firstDirection.x); firstDirection.y = EditorGUILayout.FloatField("1st Animation V", firstDirection.y); EditorGUILayout.EndHorizontal (); EditorGUILayout.BeginHorizontal (); secondDirection.x = EditorGUILayout.FloatField("2nd Animation U", secondDirection.x); secondDirection.y = EditorGUILayout.FloatField("2nd Animation V", secondDirection.y); EditorGUILayout.EndHorizontal (); animationTiling = new Vector4(firstTiling.x/100.0F,firstTiling.y/100.0F, secondTiling.x/100.0F,secondTiling.y/100.0F); animationDirection = new Vector4(firstDirection.x,firstDirection.y, secondDirection.x,secondDirection.y); WaterEditorUtility.SetMaterialVector("_BumpTiling", animationTiling, oceanMaterial); WaterEditorUtility.SetMaterialVector("_BumpDirection", animationDirection, oceanMaterial); Vector4 displacementParameter = WaterEditorUtility.GetMaterialVector("_DistortParams", oceanMaterial); Vector4 fade = WaterEditorUtility.GetMaterialVector("_InvFadeParemeter", oceanMaterial); displacementParameter.x = EditorGUILayout.Slider("Intensity", displacementParameter.x, -4.0F, 4.0F); displacementParameter.y = EditorGUILayout.Slider("Displacement", displacementParameter.y, -0.5F, 0.5F); fade.z = EditorGUILayout.Slider("Distance fade", fade.z, 0.0f, 0.5f); EditorGUILayout.Separator (); GUILayout.Label ("Fresnel", EditorStyles.boldLabel); if(!oceanMaterial.HasProperty("_Fresnel")) { if(oceanMaterial.HasProperty("_FresnelScale")) { float fresnelScale = EditorGUILayout.Slider("Intensity", WaterEditorUtility.GetMaterialFloat("_FresnelScale", oceanMaterial), 0.1F, 4.0F); WaterEditorUtility.SetMaterialFloat("_FresnelScale", fresnelScale, oceanMaterial); } displacementParameter.z = EditorGUILayout.Slider("Power", displacementParameter.z, 0.1F, 10.0F); displacementParameter.w = EditorGUILayout.Slider("Bias", displacementParameter.w, -3.0F, 3.0F); } else { Texture fresnelTex = (Texture)EditorGUILayout.ObjectField( "Ramp", (Texture)WaterEditorUtility.GetMaterialTexture("_Fresnel", oceanMaterial), typeof(Texture), false); WaterEditorUtility.SetMaterialTexture("_Fresnel", fresnelTex, oceanMaterial); } EditorGUILayout.Separator (); WaterEditorUtility.SetMaterialVector("_DistortParams", displacementParameter, oceanMaterial); if (edgeBlend.boolValue) { GUILayout.Label ("Fading", EditorStyles.boldLabel); fade.x = EditorGUILayout.Slider("Edge fade", fade.x, 0.0f, 0.3f); if(hasShore) fade.y = EditorGUILayout.Slider("Shore fade", fade.y, 0.0f, 0.3f); fade.w = EditorGUILayout.Slider("Extinction fade", fade.w, 0.0f, 2.5f); WaterEditorUtility.SetMaterialVector("_InvFadeParemeter", fade, oceanMaterial); } EditorGUILayout.Separator (); if(oceanMaterial.HasProperty("_Foam")) { GUILayout.Label ("Foam", EditorStyles.boldLabel); Vector4 foam = WaterEditorUtility.GetMaterialVector("_Foam", oceanMaterial); foam.x = EditorGUILayout.Slider("Intensity", foam.x, 0.0F, 1.0F); foam.y = EditorGUILayout.Slider("Cutoff", foam.y, 0.0F, 1.0F); WaterEditorUtility.SetMaterialVector("_Foam", foam, oceanMaterial); } serObj.ApplyModifiedProperties(); }
private void Start() { this.sky = (TOD_Sky)UnityEngine.Object.FindObjectOfType(typeof(TOD_Sky)); this.water = base.GetComponent <WaterBase>(); }
public override void LoadContent() { switchCamera(); midTerrain = new Vector3(terrain.terrainWidth / 2, waterLevel, terrain.terrainLength / 2); //Create water water = new WaterBase(midTerrain, waterLevel, new Vector2(terrain.TerrainWidth, terrain.TerrainLength), baseWaterKey, waveKey, baseWaterRowX, baseWaterRowY, "water", amountWaves, Game); Game.Components.Add(water); //Adding the models Models.AddModels addModels = new Models.AddModels(Game, models, terrain, modelmapKey, Game.Content); foreach (Models.LFModel model in models) { if (!Game.Components.Contains(model)) { Game.Components.Add(model); } } //Load songs. this.smallFireSong = Game.Assets.Load <Song>("flamesmall"); this.mediumFireSong = Game.Assets.Load <Song>("flamemedium"); this.bigFireSong = Game.Assets.Load <Song>("flamebig"); this.songPlayTimeCounter = 0; this.currentlyPlaying = this.smallFireSong; MediaPlayer.Play(this.currentlyPlaying); //Load Soundeffects. SoundEffect s = Game.Assets.Load <SoundEffect>("collectmeteor"); this.collectMeteorInstance = s.CreateInstance(); s = Game.Assets.Load <SoundEffect>("treefall"); this.treeFallInstance = s.CreateInstance(); s = Game.Assets.Load <SoundEffect>("watersplash"); this.waterSplash = s.CreateInstance(); s = Game.Assets.Load <SoundEffect>("burnsomething"); this.burnSomething = s.CreateInstance(); s = Game.Assets.Load <SoundEffect>("collectstar"); this.collectStarInstance = s.CreateInstance(); foreach (Models.LFModel model in models) { if (model is Coal) { Vector3 pos = model.Position + new Vector3(0, 0.5f, -1.5f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(6), Game.Assets.Load <Texture2D>("circle"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } else if (model is Meteoriet) { Vector3 pos = model.Position + new Vector3(0, 32, 0); BillBoard.VerticalBillBoard beam = new BillBoard.VerticalBillBoard(pos, pos.Y, new Vector2(6, 50), Game.Assets.Load <Texture2D>("lightbeam"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(beam); } else if (model is Tree && this is States.GreenHills.Tutorial) { Vector3 pos = model.Position + new Vector3(0, 0.5f, 0f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(7), Game.Assets.Load <Texture2D>("circletree"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } } foreach (Models.LFModel model in models) { if (model is Meteoriet) { Vector3 pos = model.Position + new Vector3(0.5f, 0.5f, 0f); BillBoard.HorizontalBillboarding circle = new BillBoard.HorizontalBillboarding(pos, pos.Y, new Vector2(8), Game.Assets.Load <Texture2D>("circle"), 1, 1, Game.GraphicsDevice, Game.Content, Game); Game.Components.Add(circle); } } // If there is a load file, load the game from that point. if (loadName != "") { loadProgress(loadName); } //Set the player's position player.Position = this.terrain.GetHeightAtPosition(startPosition.X, startPosition.Z, 0); //Create the sky sky = new Sky(Game, Game.Assets.Load <TextureCube>("sky")); Game.Components.Add(sky); }
public void DrawMapInEditor() { if (processus == 2) { if (heightLinear == 0) { waterMap = new float[101, 101]; WaterBase.Params(); } } if (witch == 1) { if (processus == 2) { Rain.SetActive(true); Cloud.SetActive(true); Sun.intensity = .5f; RenderSettings.skybox = Rainning; } waterMap = RainSimulate(); } if (witch == 4) { if (processus == 2) { waterMap = Wave.initWave(waterMap, 0.5f, 8); } waterMap = WaterBase.waterMove(waterMap, processus, 0.5f); } if (witch == 2) { if (processus == 2) { heightLinear += .05f; if (heightLinear <= 1) { waterMap = Wave.initUniformWave(waterMap, heightLinear, 3); } } if (heightLinear <= 1) { waterMap = WaterBase.waterMove(waterMap, processus, heightLinear); } if (processus >= 102) { processus = 1; } } processus++; waterDisplay display = FindObjectOfType <waterDisplay>(); display.DrawMesh(MeshGenerator.GenerateTerrainMesh(waterMap, multiplier, waterCurve)); if ((waterMap[1, 1] >= 1 && witch == 1) || (processus >= 100 && witch == 4) || (heightLinear >= 1.05 && witch == 2)) { instance.CancelInvoke(); if (Rain.activeSelf) { Rain.SetActive(false); Cloud.SetActive(false); Sun.intensity = 1f; RenderSettings.skybox = Sunning; } infos.text = "PrevSimulation is finish, remove water in 20 s"; TextScenes.SetActive(true); remove = 1; InvokeRepeating("HideText", 5f, 10f); } }