我正在做一个砖块放置游戏与一个2d建筑系统,我试图修改后处理饱和度的基础上的块的数量,从-100饱和度(灰度),并最终以0(全彩色)。玩家放置的积木越多,游戏/世界就越丰富多彩。
我已经成功地访问了从另一个对象中放置的所有块,但是我仍然无法正确地更改饱和度。检查器中的satu值正在变化,我已经选中了Override State框,但它并不影响后处理饱和。我在游戏模式中滑动了饱和滑块,并且饱和度发生了变化,但这与变化的satu值之间存在着脱节:
// Referecning the script where blockTotal is found
BuildSystem buildSys;
// Total blocks in game, this already increases with every block ( ++ done in BuildSystem script)
[SerializeField] int blockTotal;
// Saturation
public FloatParameter satu;
//Variable to control saturation sensitivity to each block placed
[SerializeField] float colorMultiplier = 1f;
private ColorGrading colorGrading;
public GameObject gameManager;
void Start()
{
buildSys = gameManager.GetComponent<BuildSystem>();
colorGrading = GetComponent<ColorGrading>();
satu = colorGrading.saturation;
}
void Update()
{
blockTotal = buildSys.blockTotal;
satu.value = blockTotal * colorMultiplier;
}我知道satu.value = blockTotal * colorMultiplier方程将变得更加复杂,因为饱和从-100开始,但我目前的工作是从0开始,结束在100,只是为了测试系统是否工作,但它还没有。如有任何建议或帮助,将不胜感激。
发布于 2022-07-18 23:26:53
当您应该设置satu.value时,您正在设置colorGrading.saturation.value的值。
https://stackoverflow.com/questions/73025094
复制相似问题