Arad のコンパイル (3) - Unity5.6 アップグレード 2020 エラーの概要

GUIText/GUITexture は廃止されました

Assets\Resources\Shader\JMO Assets\Toony Colors Pro\Demo\Assets\GUIText_Color.cs(4,26): エラー CS0619: 'GUIText' は廃止されました: 'GUIText は削除されました。代わりに UI.Text を使用してください。

Assets\Resources\Shader\JMO Assets\Toony Colors Pro\Demo\Assets\GUIT_Button.cs(4,26): エラー CS0619: 'GUITexture' は廃止されました: 'GUITexture は削除されました。代わりに UI.Image を使用してください。

コードの先頭に「using UnityEngine.UI;」を追加します。

次に、コード内のすべての「UnityEngine.GUIText」または「GUIText」を「Text」に変更します。

コード中の「GUITexture」は通常「Image」に変更されます。

コード内に GUITexture.texture が含まれている場合、画像にはテクスチャ属性がないため、画像を変更することはできません。そのため、「RawImage」に変更する必要があります。

GUITexture.GetScreenRect() のようなコードがコード内にある場合は、最初にこれらのコードを一時的にコメント アウトできます。この種の処理は主に 3 ステート ボタンなどに使用され、将来的には新しい 3 ステート ボタン機構 (Button コンポーネントなど) に置き換えられる可能性があります。

ParticleEmitter/ParticleAnimator の廃止

Assets\Scripts\03Graphic\Components\GeEffectProxy.cs(18,9): エラー CS0246: タイプまたは名前空間名 'ParticleEmitter' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が不足していますか?)

Assets\Scripts\03Graphic\Components\GeEffectProxy.cs(20,9): エラー CS0246: タイプまたは名前空間名 'ParticleAnimator' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が不足していますか?)

パーティクル システムは新しいメカニズムを使用しています。古いバージョンは古いため、一時的にコメントアウトして後でメカニズムを変更することができます。

パーティクルエミッタ -> パーティクルシステム

particleEmitter.emit -> gameObject.GetComponent().enableEmission

Network/Network.player は廃止されました

Assets\Scripts\09GameData\GameStatisticManager.cs(470,18): エラー CS0619: 'ネットワーク' は廃止されました: '従来のネットワーク システムは Unity 2018.2 で削除されました。代わりに Unity Multiplayer と NetworkIdentity を使用してください。

ネットワークは新しいメカニズムを使用しています。古いバージョンは古いため、一時的にコメントアウトして後でメカニズムを変更できます。

新しいネットワークを使用します: Unity 新しいネットワーク マルチプレイヤー - Jianshu

ポリシーエラー

Assets\Scripts\00Common\PathFinder\PathFinder.cs(3,23): エラー CS0234: タイプまたは名前空間名 'Policy' が名前空間 'System.Security' に存在しません (アセンブリ参照が不足していますか?)

コード内では Policy が使用されていないようです。コメントアウトするだけです。

MinAttributeError

Assets\Resources\Effects\Eff_Equip\FantasySpellsEffectsPack\PostProcessing\Editor\PropertyDrawers\MinDrawer.cs(6,34): エラー CS0104: 「MinAttribute」は、「UnityEngine.PostProcessing.MinAttribute」と「UnityEngine.MinAttribute」の間のあいまいな参照です。

リソース ストアからダウンロードしたリソース パッケージをインポートするときに、バージョンの問題によりエラーが発生しました。

MinDrawer.cs のすべての MinAttribute を UnityEngine.PostProcessing.MinAttribute に置き換えます。

DrawCapFunction/DotCap エラー

Assets\Tools\Editor\UICommon\GUIControls.cs(110,80): エラー CS0426: タイプ名 'DrawCapFunction' がタイプ 'Handles' に存在しません。

Assets\Tools\Editor\UICommon\GUIControls.cs(110,104): エラー CS0117: 'Handles' に 'DotCap' の定義が含まれていません

新バージョンでは呼び出し形式が変更されており、「new Handles.DrawCapFunction(Handles.DotCap)」が「new Handles.CapFunction(Handles.DotHandleCap)」に変更されています。

DLLの重複

同じ名前の SyntaxTree を持つ複数のプリコンパイル済みアセンブリ。

DLL が重複しています。5.x ではエラーは報告されません。2020 では、どの DLL ファイルが重複しているかを確認するメッセージが表示されます。それを削除してください。

安全でないコードエラー

Assets\ThirdParty\EasyMovieTexture\FFmpeg.AutoGen\FFmpeg.avcodec.g.cs(11,34): エラー CS0227: 安全でないコードは、/unsafe でコンパイルした場合にのみ表示される可能性があります。このエラーを修正するには、プレーヤー設定で「安全でない」コードを許可するを有効にしてください。

メニュー 編集 -> プロジェクト設定...|-> プレーヤー 「プレーヤー設定」を開き、「安全でない」を検索し、「安全でない」コードを許可するをクリックします。

複数のプリコンパイルエラー

同じ名前の ICSharpCode.SharpZipLib.dll または現在のプラットフォームを持つ複数のプリコンパイル済みアセンブリが含まれています。同じ名前のアセンブリはプラットフォームごとに 1 つだけ許可されます。(アセット/プラグイン/x86_64/ICSharpCode.SharpZipLib.dll)

エラー メッセージをクリックすると、下の [プロジェクト] パネルにどのファイルが重複しているかが表示されます。重複を削除し、1 つだけを残します。

x86エラー

Assets\Editor\BuildPlayer\BuildPlayer.cs(241,38): エラー CS0117: 'AndroidArchitecture' に 'x86' の定義が含まれていません

プレーヤーの設定、Android の設定 -> その他の設定 -> 構成で、x86 がサポートされなくなっていることがわかります。そのため、コードの「case AndroidArchitecture.x86」部分を削除するだけです。

: これにより、Android パッケージがリリースされると、古いバージョンの Assets\Plugins\x86 の dll ファイルも使用できなくなります。パッケージを使用できる前に、dll に対応する so ファイルを用意し、それを ARMv7 ディレクトリに置く必要があります。解放されました。

合鍵がある

ArgumentException: 同じキーを持つ項目が既に追加されています。キー: 50

重複したキーを含むコード行を削除するか、未割り当てのキーを変更します。

ボックス最大エラー

「Hero_Shader_A/Hero_Shader_test_03」のシェーダー エラー: 行 147 の添字「boxMax」が無効です (d3d11 上)

これは、バージョンをアップグレードするときによくあるシェーダー エラーです。次のように変更します。

	UnityGIInput d;
	d.light = light;
	d.worldPos = i.posWorld;
	d.worldViewDir = viewDirection;
	d.atten = attenuation;
#if defined(LIGHTMAP_ON) || defined(DYNAMICLIGHTMAP_ON)
	d.ambient = 0;
	d.lightmapUV = i.ambientOrLightmapUV;
#else
	d.ambient = i.ambientOrLightmapUV.rgb;
	d.lightmapUV = 0;
#endif

	d.probeHDR[0] = unity_SpecCube0_HDR;
	d.probeHDR[1] = unity_SpecCube1_HDR;
#if defined(UNITY_SPECCUBE_BLENDING) || defined(UNITY_SPECCUBE_BOX_PROJECTION)
	d.boxMin[0] = unity_SpecCube0_BoxMin; // .w holds lerp value for blending
#endif

#ifdef UNITY_SPECCUBE_BOX_PROJECTION
	d.boxMax[0] = unity_SpecCube0_BoxMax;
	d.probePosition[0] = unity_SpecCube0_ProbePosition;
	d.boxMax[1] = unity_SpecCube1_BoxMax;
	d.boxMin[1] = unity_SpecCube1_BoxMin;
	d.probePosition[1] = unity_SpecCube1_ProbePosition;
#endif

TR 言語パックのエラー

TR がキーを見つけられません:kill3ShiTu

言語パックに対応するキーが見つかりませんでした。

固定文字列に変更するだけです。

投稿画像エラー

スプライト-DirectionalDissolve.shader

struct v2f の UNITY_FOG_COORDS(1) を 1 から 2 に変更します。

Androidマニフェストエラー

AndroidManifest.xml の属性 application@icon value=(@mipmap/app_icon)

AndroidManifest.xml の属性 application@icon value=(@mipmap/app_icon)

参照:マニフェストのマージの失敗 - CSDN ブログ

これは、Unity が Android プロジェクトを呼び出すときのアイコン属性の競合です。「プロジェクト設定」->「プレーヤー」->「公開設定」->「ビルド設定」を開き、カスタム AndroidManifest.xml を選択します。

改訂:

xmlns:tools="http://schemas.android.com/tools"

tools:replace="アンドロイド:アイコン、アンドロイド:テーマ"

イネーブルR8エラー

Gradle ビルド エラー: 「オプション設定 'android.enableR8=false' は非推奨です…」

Unity: オプション「android.enableR8」は非推奨になっており、今後は使用しないでください。それはリモートになります... - 简书

NullReferenceException

(関連するコードを一時的にコメントアウトし、後で時間のあるときに処理できます)

SetActiveScene

ComCreateRoleScene.cs - OnSceneLoaded->SetActiveScene

Unity SceneManager 直後に SetActiveScene を設定できない

または: SceneManager.LoadScene 呼び出しの後に 2 yield return new WaitForEndOfFrame(); を追加すると問題ありません。

DontDestroyOnLoadError

VersionUpdateFrame.cs - GameObject.DontDestroyOnLoad(frame) が GameObject.DontDestroyOnLoad(frame.transform.root) に変更されました

おすすめ

転載: blog.csdn.net/icegray1/article/details/133956425