【发布时间】:2019-06-22 13:51:47
【问题描述】:
我正在尝试创建一个有两个可玩角色的平台游戏。当用户点击屏幕右侧时,第一个字符跳跃,当点击屏幕左侧时,另一个字符跳跃。
我能够让第一个玩家跳跃,但无法让第二个玩家跳跃。
if (Input.GetMouseButtonDown(0) && !IsDead)
{
jump = true;
}
此代码适用于一个字符,但我无法让第二个字符跳转。
编辑
@derHugo,感谢您的回复。我尝试实现您提供的代码。它适用于播放器 2,但播放器 1 未按预期工作。这是我所拥有的:
public enum WhichPlayer
{
Player1,
Player2
};
public WhichPlayer whichPlayer;
void Update () {
if (Input.GetMouseButtonDown(0) && !IsDead){
Vector2 position = Input.mousePosition;
bool leftHalf = position.x <= Screen.width / 2;
if (whichPlayer == WhichPlayer.Player1 && !leftHalf || whichPlayer == WhichPlayer.Player2 && leftHalf)
{
jump = true;
animator.SetBool("Jump", true);
} else {
jump = false;
animator.SetBool("Jump", false);
}
播放器 2:当点击屏幕左侧时,播放器 2 跳跃并播放动画。单击屏幕右侧时,玩家 2 停留在地面上,不播放动画。
播放器 1:当点击屏幕右侧时,播放器 1 跳跃并播放动画。单击屏幕左侧时,播放器 1 仍会跳跃,但不播放动画。我无法弄清楚为什么玩家 1 仍然会因为动画停止而跳跃,那是因为“else”块中的代码。
【问题讨论】: