表示テーマ
Script Component
C#のMonoBehaviourをGameObjectへ追加してゲーム処理を実行します。
設定する手順
- ProjectでC# Scriptを作成し、ビルド後にGameObjectへ追加します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
複雑な設定は下記の専用APIとInspectorの編集欄を使用します。
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 有効 | Editor / C# | enabled | Scriptごとにコールバックの有効状態を切り替えます。GameObject全体のactiveSelfとは別です。 |
| Scriptを開く・削除 | Editorのみ | — | ヘッダーの右クリックからソースを開くかScriptを外します。保存Fieldや属性はゲームのC#コードで定義し、Inspectorはその定義に従って編集欄を表示します。 |
| 保存Field・属性・処理 | C#のみ | gameObject / transform | SerializeFieldなどで公開するField、Updateや接触コールバック、Timer・Coroutineをゲーム側で実装します。属性一覧とScriptの書き方を参照してください。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はMonoBehaviourです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
設定用・関連するC#型
MonoBehaviour
| 宣言・詳説 | 種類・操作 | 役割 |
|---|---|---|
protected void DestroySelf() | 関数 | component access(GetComponent<T>等)はComponent基底が提供する(owner GameObjectへの委譲) 自分の owner GameObject を破棄する |
public override int GetHashCode() | 関数 | 同じ値を検索Keyに使うためのHashを返します。 |
protected void Publish<T>(in T evt) | 関数 | 現在のイベントを購読先へ通知します。 |
protected void PublishDeferred<T>(in T evt) | 関数 | イベントを後の通知地点へ予約します。 |
protected TimerHandle ScheduleRepeatingTimer(float intervalSeconds, Action callback) | 関数 | このScript所有の繰り返しTimerを登録します。 |
protected TimerHandle ScheduleTimer(float delaySeconds, Action callback) | 関数 | Timer(owner=this 紐付け。owner 破棄で自動 cancel) |
protected TimerHandle ScheduleUnscaledTimer(float delaySeconds, Action callback) | 関数 | このScript所有の、TimeScaleに依存しないTimerを登録します。 |
protected CoroutineHandle StartCoroutine(IEnumerator routine) | 関数 | Coroutine(owner=this。owner 破棄 / DLL unload / Play Stop で停止) |
protected void StopAllCoroutines() | 関数 | このScript所有のCoroutineをすべて停止します。 |
protected bool StopCoroutine(CoroutineHandle handle) | 関数 | 指定したCoroutineを停止します。 |
protected EventSubscription Subscribe<T>(Action<T> handler) | 関数 | EventBus(owner=this で購読し、owner 破棄時に自動解除される) |
public bool enabled | プロパティ(読取・変更) | runtime の有効/無効。lifecycle multi-pass の同期境界で OnEnable/OnDisable へ反映される。 authoring の ScriptEntry.enabled へは書き戻さない(Play終了で authoring に戻る) |
public bool isActiveAndEnabled | プロパティ(読取専用) | owner が active hierarchy にあり、かつ enabled なとき true |
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
Scriptの削除とソースを開く操作は各Scriptのヘッダーから行います。Play中の変更は実行用Worldに適用されます。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。