在下面的代码中,#else和#endif之间的代码块作为多行注解变灰。Image Code Block
#if UNITY_EDITOR
newImgAimX = Mouse.current.position.value.x;
newImgAimY = Mouse.current.position.value.y;
#else
newImgAimX = imgAim.transform.position.x + v2MouseDelta.x;
newImgAimY = imgAim.transform.position.y + v2MouseDelta.y;
#endif
是否可以在此块中进行语法高亮显示?
1条答案
按热度按时间jgwigjjp1#
这是一个编译时常量或预处理器指令。这意味着编译器可以在编译时确定正确的条件。因此,它是灰色的。它向您显示将要编译的代码块。要解决这个问题,请将每个块转换为函数。
例如:
然后:
然而,这种方法有一个缺点。非常重要的一点是,函数
CompileForX
和CompileForY
都将被实际编译,并且它们将成为程序集的一部分。这是因为条件块中的内容仅在编译时条件为真时才被编译。