“Master”中的着色器警告:向量类型的隐式截断

问题描述

每当我在任何着色器文件中保存更改时,都会收到这些警告。 它似乎与着色器文件没有直接关系,因为它在新项目中完美运行。 不幸的是,似乎无法打开这个“主”着色器并对其进行编辑,双击错误消息不会打开任何文件

Master shader error

我使用的是 Unity 2021.1.0b11.2079 和通用渲染管线。

有谁知道为什么会出现这些警告以及我如何解决根本问题?

非常感谢!

解决方法

警告只是意味着向量的某些组件被忽略,因为它被转换为具有较少组件的另一种类型(例如 float3 到 float2)。在脚本中,而不是编写

float3 a = float3(1,2,3);
float2 b = a;

(这会给你一个警告)你可以简单地写

float3 a = float3(1,3);
float2 b = a.xy;

行为是一样的,但警告消失了。