C# 如何在Unity2D中设置加速度?
我正在Unity中玩我自己的“恐龙游戏”(就像Chrome一样)。然而,我的恐龙加速太快了。你能帮我找到代码中的问题吗 代码如下:C# 如何在Unity2D中设置加速度?,c#,unity3d,C#,Unity3d,我正在Unity中玩我自己的“恐龙游戏”(就像Chrome一样)。然而,我的恐龙加速太快了。你能帮我找到代码中的问题吗 代码如下: void FixedUpdate() { rb2d.Cast(Vector2.down, hitBuffer); float distance = hitBuffer[0].distance; if (distance > minMoveDistance) Fall(); else Move();
void FixedUpdate()
{
rb2d.Cast(Vector2.down, hitBuffer);
float distance = hitBuffer[0].distance;
if (distance > minMoveDistance)
Fall();
else
Move();
}
void Fall()
{
transform.Translate(fall);
fall += Physics2D.gravity * Time.fixedDeltaTime;
fall = Vector2.ClampMagnitude(fall, 90 * Time.fixedDeltaTime);
}
void Move()
{
transform.Translate(move);
move.x += (acceleration * Time.fixedDeltaTime);
}
- 你可以使用加速度来增加单位刚体的力
- 刚体
- 或者你自己
将加速度设置为较小的值?其下降速度过快还是移动速度过快?
public void Update()
{
if (hasAcceleration)
{
// AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);
//
rigidbody2D.AddForce(force, ForceMode2D.Force);
}
}
public void AddForce(Vector3 force)
{
Vector3 f = force;
f = f / mass;
acceleration += f;
}
public void AddForce(Vector2 force)
{
AddForce(new Vector3(force.x, force.y, 0.0f));
}
public void UpdateMovement(float deltaTime)
{
velocity += acceleration;
acceleration *= 0;
movement = velocity * deltaTime;
transform.localPosition += movement;
}