【问题标题】:Unity3D C# direction change while running don't work运行时Unity3D C#方向改变不起作用
【发布时间】:2017-02-02 20:06:10
【问题描述】:

我目前正在 Unity 中开发一款 2D 游戏,作为 Unity 和 C# 的初学者。

我的角色应该左右行走,轴水平,这很有效。但是现在我想要我的角色运行,当我另外按下“Fire1”时。这也可以部分工作,但是当我在按下“Fire1”的同时改变方向时,角色会停止。不按“Fire1”,方向改变工作。脚本似乎没有得到水平变化,因为当方向改变时按下“Fire1”时,debug.log 显示“0”。

if (onPlatform) {
   activeMoveSpeed = moveSpeed * onPlatformSpeedModifier;
} else if(Input.GetButton("Fire1")) {
   activeMoveSpeed = moveSpeed * sprintSpeedModifier;
} else {
   activeMoveSpeed = moveSpeed;
}

Debug.Log (Input.GetAxisRaw ("Horizontal"));

//Player go left and right
if (Input.GetAxisRaw ("Horizontal") > 0f) {
    myRigidbody.velocity = new Vector3 (activeMoveSpeed, myRigidbody.velocity.y, 0f);
    transform.localScale = new Vector3 (1f, 1f, 1f);
} else if (Input.GetAxisRaw ("Horizontal") < 0f) {
    myRigidbody.velocity = new Vector3 (-activeMoveSpeed, myRigidbody.velocity.y, 0f);
transform.localScale = new Vector3 (-1f, 1f, 1f);
} else {
    myRigidbody.velocity = new Vector3(0f, myRigidbody.velocity.y, 0f);
}

【问题讨论】:

  • 玩家可以在平台上同时跳跃吗?
  • @MistaGoustan 可以的

标签: c# unity3d


【解决方案1】:

您可以尝试将每个moveSpeed 乘以Time.deltaTime。我遇到了一个与这个问题非常相似的问题,它有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 2021-07-21
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多