public static void Make(GameObject body, Sector sector, IPlanetConfig config) { GameObject waterGO = new GameObject(); waterGO.SetActive(false); waterGO.layer = 15; waterGO.transform.parent = body.transform; waterGO.transform.localScale = new Vector3(config.WaterSize / 2, config.WaterSize / 2, config.WaterSize / 2); waterGO.DestroyAllComponents <SphereCollider>(); TessellatedSphereRenderer TSR = waterGO.AddComponent <TessellatedSphereRenderer>(); TSR.tessellationMeshGroup = GameObject.Find("Ocean_GD").GetComponent <TessellatedSphereRenderer>().tessellationMeshGroup; TSR.sharedMaterials = GameObject.Find("Ocean_GD").GetComponent <TessellatedSphereRenderer>().sharedMaterials; TSR.maxLOD = 7; TSR.LODBias = 2; TSR.LODRadius = 2f; TessSphereSectorToggle TSST = waterGO.AddComponent <TessSphereSectorToggle>(); TSST.SetValue("_sector", sector); OceanEffectController OEC = waterGO.AddComponent <OceanEffectController>(); OEC.SetValue("_sector", sector); OEC.SetValue("_ocean", TSR); // Because assetbundles were a bitch... /* * GameObject fog1 = new GameObject(); * fog1.transform.parent = waterBase.transform; * fog1.transform.localScale = new Vector3(1, 1, 1); * fog1.AddComponent<MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent<MeshFilter>().mesh; * fog1.AddComponent<MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); * fog1.GetComponent<MeshRenderer>().material.color = new Color32(0, 75, 50, 5); * * GameObject fog2 = new GameObject(); * fog2.transform.parent = waterBase.transform; * fog2.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); * fog2.AddComponent<MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent<MeshFilter>().mesh; * fog2.AddComponent<MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); * fog2.GetComponent<MeshRenderer>().material.color = new Color32(0, 75, 50, 5); * * GameObject fog3 = new GameObject(); * fog3.transform.parent = fog2.transform; * fog3.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); * fog3.AddComponent<MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent<MeshFilter>().mesh; * fog3.AddComponent<MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); * fog3.GetComponent<MeshRenderer>().material.color = new Color32(0, 75, 50, 5); */ waterGO.SetActive(true); Logger.Log("Finished building water", Logger.LogType.Log); }
public static void Make(GameObject body, float waterScale) { GameObject waterBase = new GameObject(); waterBase.SetActive(false); waterBase.layer = 15; waterBase.transform.parent = body.transform; waterBase.transform.localScale = new Vector3(waterScale / 2, waterScale / 2, waterScale / 2); waterBase.DestroyAllComponents <SphereCollider>(); TessellatedSphereRenderer tsr = waterBase.AddComponent <TessellatedSphereRenderer>(); tsr.tessellationMeshGroup = GameObject.Find("Ocean_GD").GetComponent <TessellatedSphereRenderer>().tessellationMeshGroup; tsr.sharedMaterials = GameObject.Find("Ocean_GD").GetComponent <TessellatedSphereRenderer>().sharedMaterials; tsr.maxLOD = 7; tsr.LODBias = 2; tsr.LODRadius = 2f; TessSphereSectorToggle toggle = waterBase.AddComponent <TessSphereSectorToggle>(); toggle.SetValue("_sector", MainClass.SECTOR); OceanEffectController effectC = waterBase.AddComponent <OceanEffectController>(); effectC.SetValue("_sector", MainClass.SECTOR); effectC.SetValue("_ocean", tsr); // Because assetbundles were a bitch... GameObject fog1 = new GameObject(); fog1.transform.parent = waterBase.transform; fog1.transform.localScale = new Vector3(1, 1, 1); fog1.AddComponent <MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent <MeshFilter>().mesh; fog1.AddComponent <MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); fog1.GetComponent <MeshRenderer>().material.color = new Color32(0, 75, 50, 5); GameObject fog2 = new GameObject(); fog2.transform.parent = waterBase.transform; fog2.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); fog2.AddComponent <MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent <MeshFilter>().mesh; fog2.AddComponent <MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); fog2.GetComponent <MeshRenderer>().material.color = new Color32(0, 75, 50, 5); GameObject fog3 = new GameObject(); fog3.transform.parent = fog2.transform; fog3.transform.localScale = new Vector3(1.001f, 1.001f, 1.001f); fog3.AddComponent <MeshFilter>().mesh = GameObject.Find("CloudsTopLayer_GD").GetComponent <MeshFilter>().mesh; fog3.AddComponent <MeshRenderer>().material = new Material(Shader.Find("Sprites/Default")); fog3.GetComponent <MeshRenderer>().material.color = new Color32(0, 75, 50, 5); waterBase.SetActive(true); }