【问题标题】:How to make better movement for object in game如何让游戏中的物体更好地移动
【发布时间】:2018-06-26 10:22:52
【问题描述】:

我刚开始团结,但对于第一个项目,我想制作类似信使球游戏的东西,但我在物体移动方面遇到了小问题。我要动起来like this

但现在我只有垂直运动。那么问题是如何以简单的方式将其更改为像视频中的那个球一样的运动?

void OnMouseDown() 
{
   rb.velocity = Vector2.up * jumpForce;
}

【问题讨论】:

  • 您可以尝试在每次点击时在右侧添加随机向量
  • 你的velocity是一个向量吗?

标签: c# unity3d game-engine


【解决方案1】:

您需要测量球心与点击点之间的距离。然后您可以在您测量的相同方向上添加力。 请记住锁定刚体在 z 轴上的运动并使用屏幕边界约束球(这些也可以是刚体 - 只是重力 = 0)。

rb.AddForce(transform.up * direction);

文档链接:https://docs.unity3d.com/ScriptReference/Rigidbody.AddForce.html

【讨论】:

  • AddForceAtPosition 是一个内置的方法。
【解决方案2】:

与@AdamRoszyk 相同的想法,但在RigidBody 类中有一个pre-bluit unity 方法,命名为AddForceAtPosition

void OnMouseDown() 
{
   var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition) ;
   rb.AddForceAtPosition(Vector2.up * jumpForce, pos, ForceMode.Impulse);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多