我正在Unity中进行自己的“恐龙游戏”(例如在Chrome中)。但是我的恐龙加速得太快了。您可以帮我在代码中找到问题吗?
代码在这里:
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);
}
答案 0 :(得分:0)
https://docs.unity3d.com/ScriptReference/Rigidbody2D.AddForce.html
您可以使用addForce加速以获得统一的刚体
由刚体
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;
}