質問と試したこと
フィールドでのメソッド呼び出しやUnityでの実行順序についての質問です。
・質問1。
フィールドでメソッドを呼び出せることを知らなかったのですが、これはいつから(C#のどのバージョン)から、
そのような仕様になったのでしょうか?(C#1.0とかだいぶ昔からですか?)
・質問2。
また、フィールドでのメソッド呼び出しはいつ行われているのでしょうか?
Unityでのイベント関数の実行順序を見てみると、
最初に呼び出されるメソッドがAwakeみたいですが、試したところ、Awakeよりも前に呼び出されているような挙動に見えました。
フィールドでのメソッド呼び出しは、Awakeよりも前に行われているという認識で合っていますか?
C#
1public class ScriptTest : MonoBehaviour 2{ 3 int i = sum(2,3); 4 5 static int sum(int a, int b){ 6 return a+b; 7 } 8 9 void Awake() 10 { 11 Debug.Log(i); 12 } 13}
上記において、Awakeのログでsum関数の出力を確認しました。
・質問3。
staticでないメソッドはフィールドで呼び出せませんか?
呼び出す方法があればご教示お願いいたします。
C#
1public class ScriptTest : MonoBehaviour 2{ 3 int i = sum(2,3); 4 5 int sum(int a, int b){ 6 return a+b; 7 } 8 9 void Awake() 10 { 11 Debug.Log(i); 12 } 13}
Assets\ScriptTest.cs(7,13): error CS0236: A field initializer cannot reference the non-static field, method, or property 'ScriptTest.sum(int, int)'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/07/20 13:07
2021/07/21 01:21
2021/07/21 01:25
退会済みユーザー
2021/07/21 10:33