嗨,团结的人,我在层次面板中寻找我喜欢的东西时发现了这种效果(禁用变灰)!- 怎么可能在游戏中给游戏对象添加这种效果。是否有任何易于实施的解决方案。
是否可以在游戏中使用统一在这里所做的事情?例如 - 在锁定的项目上?
我什至不确定要搜索什么。如果这是一个着色器,或者这将如何工作。
void OnItemEnabled()
{
?
}
到目前为止的一些实验使用光照着色器,但是它会丢失细节,并且似乎需要一种将颜色从当前着色器中提取出来以保持所有细节的方法
如果被锁,我希望猴子看起来如何
我做了一个灰度着色器......但它有点暗不知道如何减轻它以匹配“统一”的外观
我的最终解决方案在这里:着色器代码在这里,用滑块调整亮度:
Shader "Custom/GreyScale"
{
Properties
{
[PerRendererData] _MainTex("Base (RGB)", 2D) = "white" {}
_EffectAmount("Effect Amount", Range(0, 10)) = 1.0
}
SubShader{
Tags { "RenderType" = "Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
uniform float _EffectAmount;
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void surf(Input IN, inout SurfaceOutput o) {
half4 c = tex2D(_MainTex, IN.uv_MainTex);
o.Albedo = (c.r + c.g + c.b) / 3 * _EffectAmount;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse"
//Fallback "Transparent/VertexLit"
}
我的解决方案 - 代码在上面。
解锁时交换材料
另外我发现这个解决方案只解决了一半的问题,我曾计划交换着色器(但发现这是一个禁忌)所以我的解决方案是在这里 创建一个可解锁的游戏资产,编写一个简单的类
感谢 N