123 lines
2.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|