1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System;
- using UnityEngine.Rendering.Universal;
- using UnityEngine;
- using UnityEngine.Rendering;
-
- namespace UnityEditor.Rendering.Universal
- {
- class UniversalSpeedTree8Upgrader : SpeedTree8MaterialUpgrader
- {
- internal UniversalSpeedTree8Upgrader(string oldShaderName)
- : base(oldShaderName, ShaderUtils.GetShaderPath(ShaderPathID.SpeedTree8), UniversalSpeedTree8MaterialFinalizer)
- {
- RenameFloat("_TwoSided", Property.CullMode);
- }
- static public void UniversalSpeedTree8MaterialFinalizer(Material mat)
- {
- SpeedTree8MaterialFinalizer(mat);
-
- if (mat.HasFloat("_TwoSided"))
- mat.SetFloat(Property.CullMode, mat.GetFloat("_TwoSided"));
-
- Unity.Rendering.Universal.ShaderUtils.UpdateMaterial(mat,
- Unity.Rendering.Universal.ShaderUtils.MaterialUpdateType.CreatedNewMaterial,
- Unity.Rendering.Universal.ShaderUtils.ShaderID.SpeedTree8);
- }
- }
-
- class UniversalSpeedTree8PostProcessor : AssetPostprocessor
- {
- void OnPostprocessSpeedTree(GameObject speedTree)
- {
- context.DependsOnCustomDependency("srp/default-pipeline");
-
- if (RenderPipelineManager.currentPipeline is UniversalRenderPipeline)
- {
- SpeedTreeImporter stImporter = assetImporter as SpeedTreeImporter;
- if(stImporter.isV8)
- {
- SpeedTree8MaterialUpgrader.PostprocessSpeedTree8Materials(speedTree, stImporter, UniversalSpeedTree8Upgrader.UniversalSpeedTree8MaterialFinalizer);
- }
- }
- }
- }
- }
|