unity3d 如何禁用特定资产的生成警告?

k75qkfdt  于 2023-03-03  发布在  其他
关注(0)|答案(3)|浏览(199)

在Unity IDE中构建/进入播放模式时,控制台窗口中充斥着许多警告,这些警告是由第三方资源的脚本编译生成的。如何在不更改特定资源的情况下禁用或隐藏这些资源的控制台警告?
我预计人们会理直气壮地嚎叫我需要如何修复这些警告,而不是把它们扫到地毯下。但对那些人来说,* 请考虑 *...
代码在 * 第三方 * 资产中--不是我的资产。通常情况下,资产上没有可用的升级来修复消息,我已经查看了消息,并判断它们是良性的。我意识到警告的价值,但我不想深入研究第三方代码来修复这些警告。我也不愿意更改这些资产中的代码,因为它本质上给了我一个本地分支。然后,将来来自第三方的资产更新将需要手动与我的本地更新合并。这既耗时又会带来风险。

njthzxwz

njthzxwz1#

两年后,我可以回答我自己的问题了。:)
创建.asmdef文件,使第三方资产位于一个清单中,所有项目代码位于单独的.asmdef中。因此,在我的项目中,我将第三方资产放在Assets下,project再下一级。

  • Assets(文件夹)
  • thirdPartyAssets.asmdef
  • ...其他文件和文件夹...
  • Project(文件夹)
  • project.asmdef
  • ...其他文件和文件夹

这基本上通过不构建第三方资产来“禁用”来自第三方资产的警告。如果这些资产发生变化或进行了干净的构建,您仍然会看到第三方构建警告。
最初的问题是如何禁用 * 特定资产 *,所以我会注意到,可以安排.asmdefs包含/排除不同组中的资产。简单地将.asmdef放入一个警告垃圾邮件的资产的文件夹中,将导致该资产的警告不显示,除了我在上一段中描述的情况。

2vuwiymt

2vuwiymt2#

将插件放到它自己的文件夹中,如果还没有汇编定义,就创建一个汇编定义。
然后,您需要在程序集定义旁边创建一个csc.rsp文本文件
编辑此csc.rsp并添加以下行

-warn:0

这将仅针对该程序集将警告级别设置为0(无警告)。
参见https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings

tuwxkamq

tuwxkamq3#

感谢Erik Hermansen和Adam B提供的解决方案。
我采用了Erik Hermansen的解决方案,但稍微做了一些修改,有点反其道而行之:):

  • 将所有第三方内容移动到文件夹Assets/ThirdParty中,并创建Assets/ThirdParty/ThirdParty.asmdef
  • 我将自己的东西放在顶层,并创建了Assets/MyAssembly.asmdef

请注意,您可能必须添加一些对每个程序集的引用:
MyAssembly.asmdef:

  • ThirdParty.asmf
  • Unity.TextMeshPro

ThirdParty.asmdef:

  • Unity.TextMeshPro

(可能还有其他一些,取决于你自己的项目)

相关问题