導入
ランタイム時にすべてのアクションマップを印刷すると、AGM がマルチプレイヤーコントローラーをサポートするために、プロジェクト設定内の各ユーザー作成のアクションマップに対して、接尾辞 _agm_<controller_id> を持つ複数のプロキシアクションマップを作成することがわかります。VS スクリプトで移動をリッスンし、入力を変数として使用するすべての GameObject ノードは、この特別な接尾辞を持つバージョンです。
重要なポイント
- GameObject の下に Node タイプのノードを作成し、このスクリプトをアタッチしてください。
- ランタイム時にこの入力を押すと、両方の印刷がトリガーされることを確認できます。
Input.parse_input_eventやTouchScreenButtonのようなノードを使用して手動で入力をエミットする場合は、_agm_<controller_id>接尾辞を自分で含めるかどうかを決定する必要があります。- GameObject の移動関数と VS の入力関連関数は、agm 特別な接尾辞を持つ入力アクションのみを考慮します。
- 例:元のアクションマップ名が
Leftの場合、最初のローカルプレイヤーが関与するアクションマップ名はLeft_agm_0となります。ここで 0 はこのプレイヤーのcontroller_idを表します。 - GameObject の
controller_idは、対応する VariableSettings ノード内のcontroller_idという名前の変数の値です。
コア
extends Node
func _input(event: InputEvent) -> void:
var action_name = "my_action_name"
# Godot
if event.is_action_pressed(action_name):
print(action_name + " pressed!")
# Game Object Interested
var controller_id = 0
var agm_listen = action_name + "_agm_" + str(controller_id)
if event.is_action_pressed(agm_listen):
print(agm_listen + " pressed!")