【问题标题】:Adding Torque To Character With FixedAngle 2D使用 FixedAngle 2D 向角色添加扭矩
【发布时间】:2014-06-18 20:01:42
【问题描述】:

最近几天我一直被困在这个问题上,所以我希望你们能提供帮助。

我正在制作一个 2D 游戏,我希望我的角色在试图在冰上奔跑太久时滑倒、向后摔倒并撞到头部。 我的目标是,如果你在冰上持续按住跑步按钮足够长的时间,他会向后滑倒并伤害自己。 我正在使用 playmaker,但我确实懂一点 c# 编程。

我尝试的第一件事是制作一个动画浮动,随着时间的推移将旋转添加到 Z 轴,但结果非常错误,导致角色到处跳跃/跳过/故障。

我想到的第二件事是添加 2D 扭矩,使他开始向后滑动,但在 fixedAngle 为 true 的情况下,他保持相同的旋转。

然后,当他在冰上时,我将其设置为 fixedAngle 为假,但只要我开始跑步,他就会立即向前或向后跌倒。我把重心放在中间,所以只要他不动,他就可以站着。

有人知道达到我想要的效果的方法吗? 这是我的第一场比赛,我是一个菜鸟,所以希望有一个更简单/正确的方法来解决这个问题。我可能做错了,所以任何正确方向的指南将不胜感激。

【问题讨论】:

  • 这个问题对我来说没有意义。如果一个角色开始在冰上向前奔跑,该角色不会向后滑动,而是以较慢的速度向前移动。为什么角色会向后滑动?
  • 他没有向后滑动。他向后旋转,就像你踩到冰上,你的脚从你下面伸出来,你向后摔倒撞到了头。

标签: c# unity3d 2d game-physics


【解决方案1】:

从你的措辞看来,你想要跟踪玩家在冰上奔跑的时间。

如果您想将此与按下的运行键相关联,请在按钮按下时启动计时器,并在一定时间后触发“滑倒”事件。

如果您想将此与玩家在冰上的时间联系起来,请在玩家到达冰上时启动计时器,并在一定时间后触发“滑倒”事件.

如果您希望有视觉倾斜,请将时间增量与对象的角度联系起来。设置一定的角度触发“滑倒”事件。

Update(){
    if(this.running && _terrainAtPos == <Ice> && isGrounded){
        transform.Rotate(0,0,3*Time.deltaTime);
        if(tranform.rotation.z > 180){
            //do falling event
        }
    }
}

编辑:以上不是工作示例。只是为了说明而准备的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2021-06-11
    • 2021-03-25
    • 1970-01-01
    • 2018-09-03
    • 2018-09-10
    • 2021-07-27
    • 1970-01-01
    相关资源
    最近更新 更多