全站通知:

Pawn

阅读

    

2023-07-24更新

    

最新编辑:TrimesS_

阅读:

  

更新日期:2023-07-24

  

最新编辑:TrimesS_

来自S&boxWIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索
页面贡献者 :
-TrimesS-

什么是Pawn?

Pawn是任何客户端(玩家)都可以拥有的实体,它是玩家在世界中的物理代表。这个实体不需要是任何特定的东西,你可以让它成为一个物理对象或一个传统的动画玩家。
当客户端持有一个Pawn时,以下的函数都会在实体上激活:

设置客户端的Pawn

你可以在任何时候设置客户端的Pawn,标准的设置位置是客户端首次加入时。

/// <summary>
/// 有客户端加入服务器。让他们成为Pawn
/// </summary>
public override void ClientJoined( IClient client )
{
	base.ClientJoined( client );

	var player = new MinimalPlayer();
	client.Pawn = player;

	player.Respawn();
}

访问每个Pawn

获取游戏中所有Pawn的最优解是遍历所有客户端并访问它们的Pawn:

// 遍历每个客户端
foreach ( var client in Client.All )
{
    // 始终检查是否分配了Pawn,以及Pawn类型是否正确
    if ( client.Pawn is not MyPawn pawn )
        continue;

    pawn.Respawn();
}

任何时候,您都可以通过 Game.LocalPawn 访问客户端的棋子:

public class MyHealth : Panel
{
	Label healthLabel;

	public override void Tick()
	{
		healthLabel.Text = $"Health: {Game.LocalPawn.Health}";
	}
}