最近久々に再開したUnityですがなかなか思い出し切らずにいろいろとつまずいています。
その中の1つになりますが、以下のようなエラーが発生した時のものです。
原因は単純なことだったのですが、今後のため備忘録として書き残しておきます。
目次
1.エラー発生内容
とあるスクリプト(以下ではAAAAAAAA.cs)から別のスクリプトのオブジェクト(以下ではXXXXXXXX)のメソッド(以下ではYYYYYYYY())にアクセスしようとしたところですが、以下のようなエラーメッセージが発生しました。
Assets\AAAAAAAA.cs(21,56): error CS0122: 'XXXXXXXX.YYYYYYYY()' is inaccessible due to its protection level
2.原因と対処方法
上記エラーメッセージは、別のスクリプトに記載されたオブジェクトのメソッドにアクセスしようとした時に発生したエラーメッセージですが、
対象メソッドには保護レベルが原因で(問題があり)アクセスできません
というような内容かと思います。
原因を特定していったところ、非常に単純な原因だったのですが、
エラーが起きた時の表記は、
void YYYYYYYY()
のようなものだったのですが、単に「public」が抜けていたというものです。
public void YYYYYYYY()
のように変更することでエラーは解消されました。
以上が、 'XXXXXXXX.YYYYYYYY()' is inaccessible due to its protection level というエラーが出た時に対処した方法になります。