- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的游戏场景中有一个 Cube(Player)。我编写了一个 C# 脚本来限制立方体的移动(使用 Mathf.Clamp()
),使其不会离开屏幕。
下面是脚本中的我的FixedUpdate()
方法
private void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
rb.velocity = movement * speed;
rb.position = new Vector3(
Mathf.Clamp (rb.position.x, x_min, x_max),
0.5f,
Mathf.Clamp(rb.position.z, z_min, z_max)
);
}
x_min
, x_max
, z_min
, z_max
的值为-3, 3, -2, 8分别通过unity inspector输入。
问题
脚本运行良好,但我的播放器(立方体)可以在负 X-AXIS
方向上最多移动 -3.1 个单位(如果我一直按向左箭头按钮),在负方向上多移动 0.1 个单位X-AXIS
(此行为也适用于其他轴)。当我停止按下按钮时,它显然将 -3.1 夹在 -3 之间。
Mathf.Clamp()
) 首先不将立方体限制为 -3 个单位?最佳答案
您的问题可能是因为您正在设置速度然后设置位置,但在下一帧统一之前将速度添加到您的对象位置。这就是它最终减价 0.1 个单位的原因。
要解决此问题,请尝试在对象即将离开边界时将其速度重置为零。
关于c# - Unity 中的 Mathf.clamp() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43738537/
这是 Mathf.FloorToInt 的脚本引用文档正如您所看到的,它应该将 -0.5 舍入为 -1。由于某种原因,当用于我的计算时,它似乎将其返回为 0。 我有相同函数的两个版本,它们的工作方
有时当我移动鼠标(围绕角色旋转相机)时,我的角色会旋转。但是我没有通过鼠标进行任何字符旋转。这是我的旋转代码,它仅取决于键盘输入(我从标准统一示例中获取了这段代码): private void Con
一旦 object1 和 object2 达到彼此之间的特定距离,我们如何才能阻止 Mathf.PingPong 速度增加? float min; float max; // Update is ca
我有一个关于 Mathf.RoundToInt() 的问题 int val = Mathf.RoundToInt(10.5f); val = Mathf.RoundToInt(9.5f); val =
您将如何使用 C# 编写此函数? 我知道这与 Mathf.Log 有关,但我的数学有点生疏。任何帮助都会很棒。 最佳答案 Mathf 看起来像是用于 Unity 的。除非您使用的是 Unity,否则您
我想知道 SmoothDamp 是如何统一工作的。我正在尝试在 unity 之外重新创建函数,但问题是我不知道它是如何工作的。 最佳答案 来自 Unity3d C# 引用 source code :
我正在开发一个在 z 轴上旋转对象的游戏。我需要将总旋转限制为 80 度。我尝试了以下代码,但它不起作用。 minAngle = -40.0f 和 maxAngle = 40.0f Vector3 p
为什么 Mathf.Sign(0) 在 Unity 中返回 1?根据 C# 文档,它应该返回零。 Mathf.Sign(0.3); // 1 Mathf.Sign(-0.3); // -1 Mathf
为什么 Mathf.Sign(0) 在 Unity 中返回 1?根据 C# 文档,它应该返回零。 Mathf.Sign(0.3); // 1 Mathf.Sign(-0.3); // -1 Mathf
我有一个 Vector2 变量,其中 vector.x 和 vector.y 已被限制,因此两者都只允许有 0 到 4 之间的值。显然,这使我在坐标 2 周围有一个二次空间,2 到移动游戏对象。但我想
Unity 文档 Mathf.PingPong说: PingPongs the value t, so that it is never larger than length and never sm
我的游戏场景中有一个 Cube(Player)。我编写了一个 C# 脚本来限制立方体的移动(使用 Mathf.Clamp()),使其不会离开屏幕。 下面是脚本中的我的FixedUpdate() 方法
当我想知道哪个更快时,我正在创建和翻译一些算法? a) (int)float 或 b) Mathf.FloorToInt(float) 提前致谢。 编辑:如果有比这两种方法更快的方法,那也会有帮助。
我正在构建一个只能转到某些固定区域的旋钮..现在我正在为这些区域之一使用数学钳: float clampedAngle = Mathf.Clamp(angle, -250f, 0f); 我希望它适用于
我需要四舍五入到下一个最大幅度。所以 6.66 舍入为 7,而 -6.66 舍入为 -7。 目前我在做: int result = Math.Ceil(num); if(num = 0 ? (int)
我刚刚注意到以下代码返回 true: Mathf.Approximately(0.0f, float.Epsilon); // true 我已阅读 Mathf.Approximately Docume
Mathf.Clamp 在达到最大值时将我的欧拉角重置为最小值,而不是将其限制在最大值。我试过这个: rotateX = Input.GetAxis("Mouse X") *
我是一名优秀的程序员,十分优秀!