質問するログイン新規登録

回答編集履歴

2

初期化順がランダムである旨、追記しました。

2018/11/20 01:34

投稿

TakafumiYuasa
TakafumiYuasa

スコア124

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  と記載があるように、最初から非アクティブなオブジェクトはAwake以降呼ばれません。
6
6
 
7
- Startが呼ばれるボタンと呼ばれないボタンがあるのは、Panelよりも先にStartが呼ばれているか否かの差だと考えられます。
7
+ Startが呼ばれるボタンと呼ばれないボタンがあるのは、Panelよりも先にStartが呼ばれているか否かの差だと考えられます。通常、コンポーネントの初期化順はランダムであるためです。
8
8
 
9
9
 
10
10
  そこで[DefaultExecutionOrder(-1)]をボタンのclass定義の上に記述するなどしてみて下さい。

1

コード例を追加し、説明文を少し補強しました。

2018/11/20 01:34

投稿

TakafumiYuasa
TakafumiYuasa

スコア124

answer CHANGED
@@ -2,11 +2,20 @@
2
2
 
3
3
  > もしゲームオブジェクトがスタートアップ時に無効である場合、有効になるまで Awake は呼び出されません。
4
4
 
5
- と記載があるように、非アクティブなオブジェクトはAwake以降呼ばれません。
5
+ と記載があるように、最初から非アクティブなオブジェクトはAwake以降呼ばれません。
6
-  
6
+
7
7
  Startが呼ばれるボタンと呼ばれないボタンがあるのは、Panelよりも先にStartが呼ばれているか否かの差だと考えられます。
8
8
 
9
9
 
10
+ そこで[DefaultExecutionOrder(-1)]をボタンのclass定義の上に記述するなどしてみて下さい。
11
+ これでスクリプトの実行順序をある程度制御できるようになるハズです。
12
+
10
- そこで、
13
+ ```csharp
11
14
  [DefaultExecutionOrder(-1)]
15
+ public class ButtonClass : MonoBehaviour
16
+ {
17
+
18
+ }
19
+ ```
20
+
12
- どをボタンclass定義の上記述するなどしてみてくだ
21
+ お「0」がデフォルトで、より低い値方が優先的実行れます