unity3d消除你不想要的黄色警告
生活随笔
收集整理的這篇文章主要介紹了
unity3d消除你不想要的黄色警告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
譯者注:此方法并不一定適合所有場合,大家可以當作參考。
?
警告在任何一種編譯型語言中都非常非常的重要:它們告知你計算機已經檢查了你的代碼,而且意識到你“很可能”創造了一個bug;它們甚至提供一些關于這個bug會是什么的信息。
但是計算機又不是很確定它所警告的是不是bug——如果是確定的,那它就是一個編譯錯誤(紅色的)了。所以,在Unity中,警告是黃色的,而且是“不確定的”。但是,在有些情況下,你明明知道不是bug卻要報出警告,這是非常惱人的。絕大多數集成開發環境都能讓你設置警告的開與關,Unity卻做不了。。。這里就是講我們怎么解決這個問題。
注:全局的警告關閉技術可用在很多地方,比如自定義工程范圍內的#defines——更多信息在:Unity Forum thread on SMCS etc
確保你真的要這樣做? ?? ?? ?? ?? ?? ?? ???
如果你知道你在對編譯警告做什么,跳過這一節。
其余的每一個人:請三思。一個警告意味出現了下面的某種情況:
? ?? ?? ? 2.如果該不尋常使用是深思熟慮的,專業級別的:不是BUG
所以,即使很多的警告是“誤報”(本來就不是bug,而且你也知道),但也有很多是“警告對”的,而且它們是你抵御某些險惡bug的最后防線。要在個案的基礎上對待每一個警告!
選項1:在所有地方關閉警告
作為一個資深的C/C++程序員,這對我非常有用。我是這樣寫代碼的:
基于C語言和類C語言的內在功能,第4行的速寫“;//”就能讓你開啟/關閉一行代碼,只需敲4下鍵盤。在現代的集成開發環境中,通常有更好的方法實現該效果,但它不失為一個小而有效的例子。?
這個代碼在Unity控制臺觸發了一個警告:
對于這種情況的警告,我們要在所有的地方關閉它;因為這種寫法是我正在使用的一種深思熟慮的技術,所以我不需要(或者說不想要)這種警告。我想到了這種警告的后果:它以為是你意外地在“if”語句的同一行寫了一個分號。我范這種錯誤,那是快15年前的事了;我有信心在短期內不會再范這樣的錯誤。
1.?? ?? ?創建文件“smcs.rsp” 2.?? ?? ?保存文件到你工程的Assets文件下面 3.?? ?? ?一行寫一個你要廢止的警告(寫法看下面) 4.?? ?? ?修改任意一個文件,Unity會重新現場加載并遵從你的新設置
smcs.rsp的內容: -nowarn: 1234
“1234”就是Unity控制臺里出現在警告消息里的那個數字——在我的案例中,我們最后得到的是:
所以在文件里,我寫上:
-nowarn:0642?
注:這只作用于游戲腳本。如果對編輯器腳本做這樣的操作,你要使用另外一個文件——gmcs.rsp
選項2:只在一個文件中關閉警告 舉個例子,你在使用一個新的游戲功能,而且正在做調整。你有一堆正在調整的變量,有時在代碼中用到,有時又不用到。你會得到這個惱人的警告:
只對這個文件,你要忽略這個特定的警告。當你完成了這個長時段的調整,你又要重啟這個警告。
1.? ?? ???來到文件的最頂端
2.? ?? ???對每一個你要關閉的警告添加一行#pragma語句:#pragma warning disable 1234;
再一次,這個數字是Unity控制臺里出現在字母“CS”之后的任何數字。在我的例子里,是0219。
選項3:在單行代碼上關閉警告(或者是一整塊代碼)?
這跟選項2類似,除了:
1.? ?? ? 找到你要關閉警告的語句行
2.? ?? ? 在代碼行前,為每一個警告添加一行關閉警告的#pragma語句
3.? ?? ? 在代碼行后,為每一個警告添加一行開啟警告的#pragma語句
原文作者:adam
原文出處:http://t-machine.org/index.php/2016/04/16/unity3d-remove-yellow-warnings-you-dont-need-unitytips/
?
警告在任何一種編譯型語言中都非常非常的重要:它們告知你計算機已經檢查了你的代碼,而且意識到你“很可能”創造了一個bug;它們甚至提供一些關于這個bug會是什么的信息。
但是計算機又不是很確定它所警告的是不是bug——如果是確定的,那它就是一個編譯錯誤(紅色的)了。所以,在Unity中,警告是黃色的,而且是“不確定的”。但是,在有些情況下,你明明知道不是bug卻要報出警告,這是非常惱人的。絕大多數集成開發環境都能讓你設置警告的開與關,Unity卻做不了。。。這里就是講我們怎么解決這個問題。
注:全局的警告關閉技術可用在很多地方,比如自定義工程范圍內的#defines——更多信息在:Unity Forum thread on SMCS etc
確保你真的要這樣做? ?? ?? ?? ?? ?? ?? ???
如果你知道你在對編譯警告做什么,跳過這一節。
其余的每一個人:請三思。一個警告意味出現了下面的某種情況:
- ? ?? ?你有一個寫到一半的類或者算法,所以有一些未被使用的代碼,等等。這不是BUG。
- ? ?? ?你在以一種不尋常的方式使用編程語言。有可能是個BUG
? ?? ?? ? 2.如果該不尋常使用是深思熟慮的,專業級別的:不是BUG
- ? ?? ?你本要敲一個變量,卻意外地寫成了另外一個變量的名字。嚴重的,常見的BUG
所以,即使很多的警告是“誤報”(本來就不是bug,而且你也知道),但也有很多是“警告對”的,而且它們是你抵御某些險惡bug的最后防線。要在個案的基礎上對待每一個警告!
選項1:在所有地方關閉警告
作為一個資深的C/C++程序員,這對我非常有用。我是這樣寫代碼的:
基于C語言和類C語言的內在功能,第4行的速寫“;//”就能讓你開啟/關閉一行代碼,只需敲4下鍵盤。在現代的集成開發環境中,通常有更好的方法實現該效果,但它不失為一個小而有效的例子。?
這個代碼在Unity控制臺觸發了一個警告:
對于這種情況的警告,我們要在所有的地方關閉它;因為這種寫法是我正在使用的一種深思熟慮的技術,所以我不需要(或者說不想要)這種警告。我想到了這種警告的后果:它以為是你意外地在“if”語句的同一行寫了一個分號。我范這種錯誤,那是快15年前的事了;我有信心在短期內不會再范這樣的錯誤。
1.?? ?? ?創建文件“smcs.rsp” 2.?? ?? ?保存文件到你工程的Assets文件下面 3.?? ?? ?一行寫一個你要廢止的警告(寫法看下面) 4.?? ?? ?修改任意一個文件,Unity會重新現場加載并遵從你的新設置
smcs.rsp的內容: -nowarn: 1234
“1234”就是Unity控制臺里出現在警告消息里的那個數字——在我的案例中,我們最后得到的是:
所以在文件里,我寫上:
-nowarn:0642?
注:這只作用于游戲腳本。如果對編輯器腳本做這樣的操作,你要使用另外一個文件——gmcs.rsp
選項2:只在一個文件中關閉警告 舉個例子,你在使用一個新的游戲功能,而且正在做調整。你有一堆正在調整的變量,有時在代碼中用到,有時又不用到。你會得到這個惱人的警告:
只對這個文件,你要忽略這個特定的警告。當你完成了這個長時段的調整,你又要重啟這個警告。
1.? ?? ???來到文件的最頂端
2.? ?? ???對每一個你要關閉的警告添加一行#pragma語句:#pragma warning disable 1234;
再一次,這個數字是Unity控制臺里出現在字母“CS”之后的任何數字。在我的例子里,是0219。
選項3:在單行代碼上關閉警告(或者是一整塊代碼)?
這跟選項2類似,除了:
1.? ?? ? 找到你要關閉警告的語句行
2.? ?? ? 在代碼行前,為每一個警告添加一行關閉警告的#pragma語句
3.? ?? ? 在代碼行后,為每一個警告添加一行開啟警告的#pragma語句
原文作者:adam
原文出處:http://t-machine.org/index.php/2016/04/16/unity3d-remove-yellow-warnings-you-dont-need-unitytips/
總結
以上是生活随笔為你收集整理的unity3d消除你不想要的黄色警告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目之书籍管理
- 下一篇: 软考系统集成项目管理工程师重要知识点