Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

NetworkBehaviour.isLocalPlayer

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public var isLocalPlayer: bool;
public bool isLocalPlayer;

説明

オブジェクトがローカルマシンのプレイヤーである場合は true を返します。

マルチプレイヤーゲームでは、複数のプレイヤーが存在します。クライアントは "自分自身" がどれなのかを知る必要があり、また入力の受付も自身のプレイヤーのみ、カメラも自身のプレイヤーを映さなければいけません。この変数は、ローカルマシンのプレイヤーのみに対して true を返すので、操作キャラクター以外の入力処理を行わないフィルターとして役に立ちます。

以下の例は、ローカルのプレイヤーのみの入力を受け付けるスクリプトです。

#pragma strict
public class Player extends NetworkBehaviour {
	var moveX: int = 0;
	var moveY: int = 0;
	function Update() {
		if (!isLocalPlayer) {
			return ;
		}
		// input handling for local player only
		var oldMoveX: int = moveX;
		var oldMoveY: int = moveY;
		moveX = 0;
		moveY = 0;
		if (Input.GetKey(KeyCode.LeftArrow)) {
			moveX -= 1;
		}
		if (Input.GetKey(KeyCode.RightArrow)) {
			moveX += 1;
		}
		if (Input.GetKey(KeyCode.UpArrow)) {
			moveY += 1;
		}
		if (Input.GetKey(KeyCode.DownArrow)) {
			moveY -= 1;
		}
		if (moveX != oldMoveX || moveY != oldMoveY) {
			CmdMove("Move", moveX, moveY);
		}
	}
	@Command
	function CmdMove(dx: int, dy: int) {
		// move here
	}
}
public class Player : NetworkBehaviour {

int moveX = 0; int moveY = 0; void Update () { if (!isLocalPlayer ) { return; } // input handling for local player only int oldMoveX = moveX; int oldMoveY = moveY; moveX = 0; moveY = 0; if (Input.GetKey(KeyCode.LeftArrow)) { moveX -= 1; } if (Input.GetKey(KeyCode.RightArrow)) { moveX += 1; } if (Input.GetKey(KeyCode.UpArrow)) { moveY += 1; } if (Input.GetKey(KeyCode.DownArrow)) { moveY -= 1; } if (moveX != oldMoveX || moveY != oldMoveY) { CmdMove("Move", moveX, moveY); } }

[Command] void CmdMove(int dx, int dy) { // move here } }