gpt4 book ai didi

c# - 钳位幅度不适用于 RigidBody.Velocity

转载 作者:行者123 更新时间:2023-11-30 14:58:10 26 4
gpt4 key购买 nike

我正在使用 c# mono 和 unity3d 4.1.2。

我有以下脚本:

using UnityEngine;
using System.Collections;

public class PlayerMove : MonoBehaviour
{
public float MoveSpeed = 10.0f;
public float maxVel = 0.000000001f;
// Use this for initialization
void Start ()
{

}

void FixedUpdate()
{
if(Input.GetKey(KeyCode.D))
{
Debug.Log("D got called");
rigidbody.AddForce(Vector3.right * MoveSpeed);
}

if(Input.GetKey(KeyCode.A))
{
Debug.Log("A got called");
rigidbody.AddForce(Vector3.left * MoveSpeed);
}

rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, maxVel);
Debug.Log (rigidbody.velocity.x);
}
// Update is called once per frame
void Update ()
{

}
}

您可能会说,这是一个简单的玩家移动脚本。我有一个连接到球体的刚体,我希望通过“AddForce”沿 x 轴左右移动它。

除一个问题外,一切都很好,我尝试使用“clampMagnitude”在刚体上实现最大速度,但它似乎什么都不做。我什至将“maxVel”值设置为 0.000000001!看看是否会发生什么。

显然我在这里遗漏了一些东西,任何人都可以指出这个问题吗?

附加信息:

刚体不是运动学的,但确实使用重力(这是我计划在未来更改的功能,但无关紧要)。

调试信息

if(Input.GetKey(KeyCode.D))
{
rigidbody.AddForce(Vector3.right * MoveSpeed);
Debug.Log("BEFORE = " + rigidbody.velocity.magnitude);
}

if(Input.GetKey(KeyCode.A))
{
rigidbody.AddForce(Vector3.left * MoveSpeed);
}

rigidbody.velocity = Vector3.ClampMagnitude(rigidbody.velocity, maxVel);
Debug.Log("AFTER = " + rigidbody.velocity.magnitude);

在 D 上重新创建快照,之前 = 12.1911之后 = 12.1911之后 = 12.38866之后 = 12.50772

更新:(答案)

多亏了 Blue 先生的一些帮助,问题似乎出在变量 maxVel 上,因为它是公开的,它似乎在我的检查器中发生了变化,设置为私有(private)并检查进入固定更新已经解决了这个问题。所以这个脚本现在可以工作了,让用户可以在刚体的 X 轴上进行 2d 控制,希望你们觉得这篇文章有用! self 注意 = 刚体 = 头痛!

最佳答案

您在 maxVel 上的默认值可能在该对象的 Unity 检查器中设置为不同的值。您可以重置该组件,它将返回到您在脚本中设置的默认值。

为了防止将来出现这种情况,我个人的偏好是在您的脚本中将其设置为 private,直到您准备好开始仅在 Inspector 中设置选项。这确保您在 MonoDevelop 中创建的更改是您希望生效的更改,直到您准备好在 Inspector 中将该组件四舍五入为完整和可自定义的。

我通过对 TODO 使用简单注释来跟踪这些变量:并注意如何使它们可调

private float MoveSpeed = 10.0f;     //TODO: Make MoveSpeed inspector adjustable (possibly slider control)
private float maxVel = 0.000000001f; //TODO: Make maxVel inspector adjustable

关于c# - 钳位幅度不适用于 RigidBody.Velocity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com