unity3d Unity 2d对角线破折号[已关闭]

8zzbczxx  于 2023-04-12  发布在  其他
关注(0)|答案(1)|浏览(185)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
10小时前关闭。
Improve this question
我有一个基本的字符运动脚本,运动从左到右,跳跃和破折号在x方向
我如何使我的破折号工作在y方向和对角线

e7arh2l6

e7arh2l61#

您可以修改移动脚本以包含其他逻辑,使破折号在y方向和对角线上工作。以下是您可以遵循的一些步骤:
1-添加水平 Jmeter 板速度(dashSpeedX)和垂直 Jmeter 板速度(dashSpeedY)的变量。2-修改 Jmeter 板函数,使x和y方向具有两个参数:

function dash(xDir, yDir) {
  // Apply dash speed in x and y directions
  rigidbody2d.velocity = new Vector2(dashSpeedX * xDir, dashSpeedY * yDir);
}

当玩家按下破折号按钮时,根据输入确定他们想要冲进去的方向。例如,如果他们按下右键和上键,他们想要向右上角对角冲进去。

function Update() {
  // Get horizontal and vertical input
  var xInput = Input.GetAxis("Horizontal");
  var yInput = Input.GetAxis("Vertical");

  // Determine dash direction based on input
  var dashXDir = xInput;
  var dashYDir = yInput;

  if (xInput != 0 && yInput != 0) {
    // If the player is pressing both horizontal and vertical input, dash diagonally
    dashXDir = Mathf.Sign(xInput);
    dashYDir = Mathf.Sign(yInput);
  }

  // If the player presses the dash button, dash in the determined direction
  if (Input.GetButtonDown("Dash")) {
    dash(dashXDir, dashYDir);
  }
}

最后,更新你的运动代码,允许在常规运动和跳跃时进行对角线运动。

function FixedUpdate() {
  // Get horizontal and vertical input
  var xInput = Input.GetAxis("Horizontal");
  var yInput = Input.GetAxis("Vertical");

  // Move the character left or right
  rigidbody2d.velocity = new Vector2(xInput * moveSpeed, rigidbody2d.velocity.y);

  // If the player presses the jump button, jump
  if (Input.GetButtonDown("Jump")) {
    rigidbody2d.velocity = new Vector2(rigidbody2d.velocity.x, jumpSpeed);
  }
}

通过这些修改,你的角色应该能够向任何方向冲刺,包括对角方向,同时也能够移动和对角跳跃。

相关问题