【Unity】シーンをまたぐ変数の共有|アクセス修飾子に注目!

当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク

ゲームをプレイする画面からセーブとロードする画面はメモリの関係からシーンをまたぐ仕様にした方が良い場合があります。

しかし、Unityではシーンをまたぐと変数が初期化されてしまうためプレイヤーのHPやレベルなどを保持することができません。

Unityでスクリプトを記述しているときに、Sceneを切り替えても前のシーンでの変数を引き継ぎたい。スクリプトを複数に分けて書くときに、他のスクリプトの変数を現在のスクリプトで取得したい

このように変数を共有・受け渡す場合には、変数の前にアクセス修飾子を付ける必要があります。

Unity(C#)の文法では、intfloatなどのC言語やPythonと同様に使用される変数の型の他に、
[SerializeField]publicprivateなどを使用し、これらをアクセス修飾子と呼びます。

アクセス修飾子はUnity(C#)だけではなく、JavaやC++などにもpublicやprivateなどがあります。
アクセス修飾子を使わずにUnityを使うことはできないです。

本記事では、Unityでよく使う[SerializeField]やpublic、privateについて理解しつつ、Unityでゲーム開発をする際にいつ使うのか、使い分けを紹介します。

本記事は次の人におすすめ
  • Unityで変数を共有したい。
  • アクセス修飾子について知りたい。
Udemyで学習する
スポンサーリンク

アクセス修飾子

アクセス修飾子は、オブジェクト指向のプログラミング言語(Java・C++・C#・Python・Rudy・Swift etc.)において、クラスのメンバー(変数やメソッド)へのアクセス範囲を制御するために使用されるキーワードです。

参考サイト:「アクセス修飾子 – C# プログラミング ガイド

言語によって使えるアクセス修飾子は違う

Pythonは、オブジェクト指向の言語ですが、前述したようにアクセス修飾子がありません
オブジェクト指向であっても言語によって使用できるアクセス修飾子は異なります。

以下に、各言語で使用できるアクセス修飾子をまとめました。

言語 private public protected default internal protected internal fileprivate open
Java × × × ×
C++ × × × × ×
C#(Unity) × × ×
Python × × × × × × × ×
Rudy × × × × × × × ×
Swift × × ×

表に示したように、PythonとRudyはアクセス修飾子を使用しません

Unityは、C#をもとにして開発し、使用できるアクセス修飾子は5つあります。
一般的に使用されるのは、PublicとPrivate、Protectedです。

著者の体験談
著者の体験談

個人的な意見として、UnityにおいてPublicとPrivateを押さえれば、大丈夫です。

タイトルとURLをコピーしました