動作確認環境: Unity 6(6000.0)/読み替え表は2026-07-13時点の情報です
チュートリアルの通りに書いたのに、Consoleに黄色い警告が出る。AIに聞いたコードをコピペしたら「obsolete」と言われる——壊れてはいないけど不安なこの状況、原因はコードのミスではなく、参考元が古いだけかもしれません。
Unityは20年近く進化を続けているため、ネット上の記事・動画・AIの学習データには非推奨(Obsolete)になったAPIが大量に残っています。この記事では、非推奨の仕組みと、Unity 6時代によく出会う新旧APIの読み替え表、そして知らないAPIの警告に出会ったときの調べ方をまとめます。ブックマークして辞書的に使ってください。
この記事でわかること
- 「非推奨(Obsolete)」の仕組みと、警告→削除の段階
FindObjectOfTypeやRigidbody.velocityなど頻出APIの読み替え表- 警告メッセージから代替APIを自力で見つける方法
- 警告を1件直して「同じ動作」まで確認する、安全な引っ越しの型
- 古い情報(記事・ 動画・AI出力)と付き合うコツ
なぜAPIは「古く」なるのか?
Unityは機能改善のたびに、古いAPIをいきなり消すのではなく、段階を踏んで引退させます。

- 現役: 普通に使える
- 非推奨(警告):
[Obsolete]属性が付き、使うと黄色い警告が出る。まだ動く - 非推奨(エラー): コンパイルエラーになる。書き換えないとビルドできない
- 削除: APIそのものが消える
つまり黄色い警告は「今すぐ壊れはしないが、引っ越しの準備をしてね」という予告です。慌てる必要はありませんが、新しく書くコードで旧APIを使う理由もありません。
頻出API読み替え表
初心者が古いチュートリアルで特に出会いやすいものを集めました。上から順に遭遇率が高い印象です。

| 古い書き方 | 新しい書き方 | 補足 |
|---|---|---|
FindObjectOfType<T>() | FindFirstObjectByType<T>() | 「どれでもいい」ならFindAnyObjectByType<T>()が高速 |
FindObjectsOfType<T>() | FindObjectsByType<T>(FindObjectsSortMode.None) | ソート指定が必須になった。Noneが最速だが 並び順は保証されない(実践参照) |
Rigidbody.velocity | Rigidbody.linearVelocity | Unity 6で改名。2D版もlinearVelocity |
Input.GetKeyなど(旧Input) | New Input System | 旧方式も当面併存。移行は New Input Systemの記事 参照 |
WWW | UnityWebRequest | 通信APIの旧世代。かなり前から非推奨 |
Application.LoadLevel() | SceneManager.LoadScene() | using UnityEngine.SceneManagement;が必要。SceneManagerの記事 参照 |
File > Build Settings | File > Build Profiles | APIではなくメニューの変更(Unity 6) |
// 古いチュートリアルによくある形
GameManager gm = FindObjectOfType<GameManager>(); // 警告が出る
rb.velocity = new Vector3(0f, 5f, 0f); // 警告が出る
// Unity 6時代の書き方
GameManager gm = FindFirstObjectByType<GameManager>();
rb.linearVelocity = new Vector3(0f, 5f, 0f);
補足:
FindFirstObjectByType系は「シーン全体を検索する重い処理」である点は旧APIと同じです。毎フレーム呼ばずにStartで1回取得してキャッシュする、そもそも参照の設計を見直す、といった基本は GetComponentの記事 や イベントチャネルの記事 が参考になります。
警告に出会ったとき の調べ方
この表にないAPIで警告が出ても、自力で解決できます。手順は2つだけです。
手順1: 警告メッセージを最後まで読む
Obsolete警告には、ほとんどの場合代替APIの名前がそのまま書いてあります。
warning CS0618: 'Object.FindObjectOfType<T>()' is obsolete:
'Object.FindObjectOfType has been deprecated. Use Object.FindFirstObjectByType
instead or if finding any instance is acceptable the faster
FindAnyObjectByType'
英語ですが、読むべきは Use ○○ instead(代わりに○○を使え)の一点だけ。この一文が公式の答えです。
手順2: 公式Scripting Referenceで裏を取る
代替APIの名前で Unity公式のScripting Reference を検索すると、正確な使い方とバージョン情報が確認できます。「個人ブログの古い記事 → 公式リファレンスで現在形を確認」という順番を習慣にすると、古い情報に振り回されなくなります。
補足: AIアシスタントの回答も学習時期によって古いAPIを出すことがあります。「Unity 6でも現行のAPIで」と指定する、出てきたAPI名を公式リファレンスで確認する、という二段構えが安全です。
実践:警告を1件、動作ごと引っ越す
読み替え表を「知っている」ことと、実際に安全に引っ越せることは別の技術です。昔のチュートリアルからコピーした、こんなスクリプトで練習してみましょう。ウェーブ開始時に敵を全部探して、順番に番号札を配る——タワーディフェンスでもシューティングでもよくある形です。
// 古いチュートリアル由来のコード(警告が出る)
void StartWave()
{
Enemy[] enemies = FindObjectsOfType<Enemy>();
for (int i = 0; i < enemies.Length; i++)
{
enemies[i].SetNumber(i + 1); // 先頭から1番・2番・3番…と番号札を配る
}
}
手順はこうです。
- Consoleの黄色い警告をダブルクリックして該当行へ飛ぶ
- 警告文の
Use ○○ insteadを読む——今回はFindObjectsByType - 読み替え表のとおり書き換える
- Playして「同じ動作」かを確認する——ここが本番です

実はこの例、警告を消しただけでは終わりません。旧FindObjectsOfTypeは結果をInstanceID順に並べて返しましたが、書き換え先のFindObjectsSortMode.Noneは並び順を保証しません。「1番の敵」が実行のたびに別の個体になる——警告は消えたのに挙動が変わる、静かな事故です。番号の順序に意味があるなら、ソートを明示します。
// 並び順に意味があるなら、旧APIと同じ並びを明示する
Enemy[] enemies = FindObjectsByType<Enemy>(FindObjectsSortMode.InstanceID);
移行の完了条件は「警告が消えた」ではなく「同じ動作を確認した」。この1件分の型が身につけば、表にないAPIが来ても、同じ足取りで安全に引っ越せます。
おまけ:先に知っておくと良いこと
読み替えの基本が身についたら、次はこのあたりが役立ちます。
- プロジェクト移行時の強い味方 API Updater: 古いプロジェクトを新しいUnityで開くと、機械的に置換できる旧APIはAPI Updaterが自動で書き換えを提案してくれます。ただし万能ではないため、この記事のような手動の読み替え知識は依然必要です。
- バージョンアップ前にはChangelogを: エンジン更新で挙動が変わることもあります。大きなバージョンアップ前に公式のUpgrade Guide/Changelogの「API Changes」欄に目を通す習慣をつけると、事故が減ります。
- LTSという選択肢: 安定重視なら、機能追加が止まり修正だけが続くLTS(長期サポート)版を使うのが定石です。学習中こそ最新版の派手な機能より、情報が枯れて安定したLTSが快適なこともあります。
まとめ
警告は敵ではなく、「もっと良い書き方があるよ」という案内です。
- APIは 現役 → 警告 → エラー → 削除 と段階的に引退する。黄色い警告の段階なら壊れてはいない。
- 頻出の読み替えは
FindObjectOfType→FindFirstObjectByType、velocity→linearVelocityなど。本記事の表を辞書代わりに。 - 知らない警告は メッセージ内の
Use ○○ insteadを読む → 公式リファ レンスで裏を取る の2手順で解決できる。 - 移行の完了条件は「警告が消えた」ではなく「同じ動作を確認した」。並び順のように、警告なしで挙動が変わる箇所こそPlayで確かめる。
- 古い記事・動画・AI出力は「間違い」ではなく「当時は正しかった」情報。公式リファレンスで現在形を確認する癖が最強の防御。
読み替え表は、今後のUnityのアップデートに合わせてこの記事に追記していきます。