[URP12] 직접 만든 RenderFeature 메뉴 이름 바꾸기
컨디션
Universal RP 12.1.4
개시하다
상속
ScriptableRendererFeature
된 반을 만들면Universal RenderData의 Add RenderFeature 메뉴에 후보로 나타납니다.
public class EdgeDetectFeature : ScriptableRendererFeature
메뉴 이름 변경
메뉴 이름을 변경하려면
DisallowMultipleRendererFeature
를 사용합니다.아래와 같이 사용한다.
[DisallowMultipleRendererFeature("MyFeature/Edge Detect")]
public class EdgeDetectFeature : ScriptableRendererFeature
{
My Feature라는 조합이 생성되어 Edge Detect로 표시됩니다.메뉴에서 숨기기
abstract 클래스를 만들 때 메뉴에 표시하지 않으려는 경우도 있습니다.
public abstract class PostProcessFeature : ScriptableRendererFeature
{
/
부터 custom Tile을 시작하여 메뉴에 표시할 수 없습니다.[DisallowMultipleRendererFeature("/Post Process")]
public abstract class PostProcessFeature : ScriptableRendererFeature
{
주제 외: RenderFeature 메뉴 등록 처리
RenderFeature의 메뉴 등록은 다음과 같습니다.
메뉴에 등록
Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
private void AddPassMenu()
{
GenericMenu menu = new GenericMenu();
TypeCache.TypeCollection types = TypeCache.GetTypesDerivedFrom<ScriptableRendererFeature>();
foreach (Type type in types)
{
var data = target as ScriptableRendererData;
if (data.DuplicateFeatureCheck(type))
{
continue;
}
string path = GetMenuNameFromType(type);
menu.AddItem(new GUIContent(path), false, AddComponent, type.Name);
}
menu.ShowAsContext();
}
메뉴 이름 가져오기
GetCustom Title()에서 사용자 지정 메뉴를 가져오는 중입니다.
Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
private string GetMenuNameFromType(Type type)
{
string path;
if (!GetCustomTitle(type, out path))
{
path = ObjectNames.NicifyVariableName(type.Name);
}
if (type.Namespace != null)
{
if (type.Namespace.Contains("Experimental"))
path += " (Experimental)";
}
return path;
}
GetCustom Title()은 다음과 같이 구현됩니다.이미
DisallowMultipleRendererFeature
의customTitle
를 얻었다.Packages/com.unity.render-pipelines.universal/Editor/ScriptableRendererDataEditor.cs
private bool GetCustomTitle(Type type, out string title)
{
var isSingleFeature = type.GetCustomAttribute<DisallowMultipleRendererFeature>();
if (isSingleFeature != null)
{
title = isSingleFeature.customTitle;
return title != null;
}
title = null;
return false;
}
Reference
이 문제에 관하여([URP12] 직접 만든 RenderFeature 메뉴 이름 바꾸기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/r_ngtm/articles/urp12-rendererfeature-menu텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)