Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/ExampleSceneManager.cs
2026-02-21 16:45:37 +08:00

123 lines
2.6 KiB
C#

using System.Collections.Generic;
using Mtree;
using UnityEngine;
[ExecuteInEditMode]
public class ExampleSceneManager : MonoBehaviour
{
private List<Material> BarkMaterials;
private List<Material> LeafMaterials;
private Material Floor;
private GameObject Trees;
private GameObject PostProcessing;
private bool Setup = true;
private void PostProcessActive()
{
}
private void LegacySetup()
{
GameObject gameObject = Object.Instantiate(Resources.Load("Mtree/Examples/2017_4 Legacy") as GameObject, base.transform);
gameObject.name = "Legacy 2017.4+";
Debug.Log("Legacy 2017.4+ was loaded!");
}
private void LWRPSetup()
{
}
private void HDRPSetup()
{
GameObject gameObject = Object.Instantiate(Resources.Load("Mtree/Examples/2018_4 HDRP") as GameObject, base.transform);
gameObject.name = "HDRP 2018.4+";
Debug.Log("HDRP 2018.4+ Scene loaded!");
}
private void URPSetup()
{
}
private void Start()
{
if (!Setup)
{
return;
}
foreach (Transform item in base.transform)
{
Object.DestroyImmediate(item.gameObject);
}
switch (Utils.GetCurrentPipeline())
{
case "legacy":
LegacySetup();
break;
case "lwrp":
LWRPSetup();
break;
case "hdrp":
HDRPSetup();
break;
case "urp":
URPSetup();
break;
}
PostProcessActive();
UpdateMaterials();
Setup = false;
}
private void UpdateMaterials()
{
BarkMaterials = new List<Material>();
LeafMaterials = new List<Material>();
MeshRenderer[] componentsInChildren = GameObject.Find("Trees").GetComponentsInChildren<MeshRenderer>();
Floor = base.transform.GetComponent<MeshRenderer>().sharedMaterial;
MeshRenderer[] array = componentsInChildren;
foreach (MeshRenderer meshRenderer in array)
{
Material[] sharedMaterials = meshRenderer.sharedMaterials;
foreach (Material material in sharedMaterials)
{
if (material.shader.name.Contains("Leafs"))
{
LeafMaterials.Add(material);
}
if (material.shader.name.Contains("Bark"))
{
BarkMaterials.Add(material);
}
}
}
for (int k = 0; k < BarkMaterials.Count; k++)
{
BarkMaterials[k].shader = Utils.GetBarkShader();
}
for (int l = 0; l < LeafMaterials.Count; l++)
{
LeafMaterials[l].shader = Utils.GetLeafShader();
}
switch (Utils.GetCurrentPipeline())
{
case "legacy":
Floor.shader = Shader.Find("Standard");
break;
case "lwrp":
Floor.shader = Shader.Find("Lightweight Render Pipeline/Lit");
break;
case "hdrp":
Floor.shader = Shader.Find("HDRP/Lit");
break;
case "urp":
Floor.shader = Shader.Find("Universal Render Pipeline/Lit");
break;
}
}
}