【Unity】【C#】モバイルビルド中の警告:Game scripts or other custom code contains OnMouse_ event handlers.~ を消す [⇒PCページへ]

2017年04月19日00:08  Unity 写真あり


 Unity5.6 で obsolute になったものも多いけど、エラーや警告もやたら出るようになったね。しかしファイル名や行番号はおろか、ある一定のビルドでしか出ない警告は非常に直しずらい。とりあえず英文を翻訳にかけて、色々試してみたら警告が消えたので記録しておく。


(※) Unity 5.6.0f3 / Windows10(x64) で確認

●コンソールログの警告
Game scripts or other custom code contains OnMouse_ event handlers. Presence of such handlers might impact performance on handheld devices.
(※) Android ビルド中に出た

●Google翻訳
ゲームスクリプトやその他のカスタムコードには、OnMouse_イベントハンドラが含まれています。 このようなハンドラが存在すると、ハンドヘルドデバイスの性能に影響を与える可能性があります。

●対処法
1.MonoBehaviour を継承した OnMouseDown() などを使っているスクリプトを探す(Visual Studio の場合「Edit>Find and Replace>Find in Files」[Ctrl+Shift+F] で探すとラク)。

2.モバイル時のビルドで除外するようにスクリプトを修正する → 例えば以下の例のようにプリプロセッサで囲んでしまうとか(または OnMouseXXX() 以外の方法にする等)。

●モバイルビルド時に OnMouseXXX() を無効にする例(プリプロセッサで囲む)
public class Sample : MonoBehaviour {
#if !UNITY_ANDROID && !UNITY_IOS
void OnMouseDown()
{
//(なんらかのコード)
}
#endif
}

 ちなみに実際に使用してなくてもプロジェクトにあるだけでも警告が出るようなので注意。私の場合アセットストアからダウンロードしたものの中にこれが含まれていたため、警告が出ていた(使用はしてない)。

 どうやら MonoBehaviour を継承した OnMouseXXX() [XXX は Down/Up/Drag など] はモバイルなどでは負荷が高いようだね。 また、このイベントハンドラはドキュメントを読むと「GUIElement」または「Collider」でクリックが取得できるとなっていて、「uGUI」では無論使えなかった。もしかしてレガシーなものになるのかもね。場合によってはこれからは使わない方が良いのかも。


(関連記事)
【Unity】アイコン画像のフォーマット警告:Compressed texture XXX is used as icon. This might compromise visual quality of~ を消す
【Unity】5.6 の Canvas の警告:Shader channels Normal and Tangent are most often used with lighting~ を消す
【Unity】InitializeUnityExtensions: Must have a valid path for the plugin [XX] (XX:番号) というエラーの修正方法
【Unity】"~\Temp\Assembly-CSharp.dll.mdb" is denied. と出たら…


関連記事
トラックバックURL

http://fantom1x.blog130.fc2.com/tb.php/241-31e2accf

前の記事 次の記事