Привет, люди единства. Я нашел этот эффект (отключен серым цветом), когда искал что-то на панели иерархии. Мне это нравится! - Как можно было бы добавить такой эффект к игровым объектам в игре. есть ли простые в реализации решения.
можно ли использовать в игре то, что делает Unity? например - на заблокированном элементе?
Я даже не знаю, что искать. Если это шейдер, или как это будет работать.
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"
}
Мое решение здесь - код выше.
Замена материалов при разблокировке
Также я обнаружил, что это решение решило только половину проблемы, я планировал поменять местами шейдеры (но обнаружил, что это не так), поэтому мое решение для этого здесь Создание разблокируемого игрового ресурса, написание простого класса
С благодарностью Н
MeshRenderer
на лету. - person Ron   schedule 05.02.2020o.Albedo = (c.r + c.g + c.b) / 3 * intensityMultiplier;
попробуйте добавить это и сделайтеintensityMultiplier;
редактируемым из редактора, и оно не может быть ниже 1. - person Ankit   schedule 05.02.2020