Unity/Common
Unity Current Scene Upgrade Standard terrain shader to HDRP Shader
JAVART
2020. 10. 23. 16:32
반응형
현재 Scene의 스탠다드 터레인 머티리얼을 HDRP 기본 셰이더로 변경해주는 스크립트입니다.
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine.SceneManagement;
public class StandardToHDRP
{
[MenuItem("Edit/Render Pipeline/Upgrade Scene Terrain Materials")]
public static void UpgradeSceneTerrainMaterial()
{
Scene scene = EditorSceneManager.GetActiveScene();
List<GameObject> gameObjects = new List<GameObject>();
scene.GetRootGameObjects(gameObjects);
if (gameObjects.Count == 0) return;
foreach(GameObject root in gameObjects)
{
Terrain[] terrains = root.GetComponentsInChildren<Terrain>();
foreach(Terrain terrain in terrains)
{
if (!terrain.materialTemplate.shader.name.ToLower().Contains("standard")) continue;
terrain.materialTemplate.shader = Shader.Find("HDRP/TerrainLit");
}//Terrain
}//GameObject
}
}
반응형