问题标签 [clamp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
809 浏览

android - Clamp RotateAround 不适用于 Unity3D 中的相机

我的代码不起作用,我试图夹住相机,但它不起作用。它立即捕捉到45。我怎样才能夹住相机?

这是我的代码。

0 投票
1 回答
61 浏览

c# - 为什么这个 Mathf.Clamp 的例子不起作用?

我试图在 2 秒内简单地从 0 变为 1,而不超过 0 或 1。

这导致我的数字增加到超过 1。

我知道一个简单的方法是做这样的事情

...但我很好奇为什么我的钳位方法不起作用。

谢谢!

0 投票
2 回答
6211 浏览

python - 用上限和下限(钳位、剪裁、阈值)替换列表值的 Pythonic 方法?

我想从列表中替换大纲。因此我定义了一个上限和下限。现在,上面upper_bound和下面的每个值lower_bound都替换为绑定值。我的方法是使用 numpy 数组分两步执行此操作。

现在我想知道是否可以一步完成,因为我猜它可以提高性能和可读性。

有没有更短的方法来做到这一点?

0 投票
0 回答
648 浏览

javascript - clamp.js 的错误 - a.lastChild 为空

我正在尝试使用clamp.js,但我马上就遇到了一个错误。这是我的代码

我进入TypeError: a.lastChild is null[Learn More]了 Firefox 和Uncaught TypeError: Cannot read property 'children' of nullchrome。

这是我使用的文件clamp.min.js

有谁知道可能是什么问题?

谢谢

0 投票
4 回答
544 浏览

c++ - 将整数限制在界限内

我试图确保int x大于或等于 0 但小于 1080(在这种情况下为屏幕尺寸)。

我想出了这个

这看起来很丑陋。有没有更好的方法来实现这一目标?

0 投票
1 回答
531 浏览

c++ - std::clamp - 检测函数返回值是否绑定到 const T&

如果它的或参数之一是右值,最好不要将std::clamp返回值绑定到 const ref 。minmax

典型实现std::clamp(非常简化):

正如cppreference for std::clamp中已经说明的那样,当有人写时存在危险情况:

有没有办法在编译时检测这些情况?

0 投票
1 回答
2211 浏览

c# - 如何在 Unity 中完全防止玩家离开屏幕?

一整天,我一直在寻找一个好的解决方案来完全阻止播放器在没有硬编码的情况下离开屏幕。

我有这个称为播放器控制器的脚本,到目前为止它所做的只是允许播放器沿 x 轴移动。它还有一个附加功能,可以限制玩家在 x 轴上的移动。这里是。

这个脚本的问题在于它并没有完全阻止玩家离开屏幕(玩家身体的一半仍然离开屏幕)。

所以这就是我接下来尝试的。

不幸的是,这段代码不好。事实上,它甚至更糟,因为它根本无法阻止玩家离开屏幕。

所以在这一点上,我被困在一块石头和一个坚硬的地方之间。任何建议将不胜感激。

0 投票
2 回答
278 浏览

unity3d - 将游戏对象夹在边界内,同时沿着 x 和 y 缓慢跟随另一个对象

我正在尝试制作一个空气曲棍球游戏,我需要将 AI 夹在一个特定区域,同时它在半边时跟随冰球在棋盘周围。我认为下面的代码会起作用,但是我从桨中得到了一些奇怪的行为,它要么 a) 在关卡开始时卡在 y=minY 上,要么 b) 它似乎会连续在 minY 和 maxY 之间切换。

谢谢你的帮助。

编辑 我应该补充一点,如果我只在 y 上使用夹子,它会按预期工作,但是如果我也不夹住它,它可能会随着时间的推移从 x 中夹出。

0 投票
3 回答
6296 浏览

c# - Unity 中的 Mathf.clamp() 函数

我的游戏场景中有一个 Cube(Player)。我编写了一个 C# 脚本来约束Mathf.Clamp()Cube 的移动(使用),使其不会离开屏幕。

以下是我FixedUpdate()的脚本方法

x_min, x_max, z_min,的值z_max分别是通过统一检查器输入的 -3, 3, -2, 8。

问题

脚本运行良好,但我的播放器(立方体)最多可以负向移动 -3.1 个单位X-AXIS(如果我一直按向左箭头按钮),负向移动多 0.1 个单位X-AXIS(这种行为也适用于其他轴)。当我停止按下按钮时,它显然会夹住 -3.1 到 -3。

在此处输入图像描述

  • 为什么会这样?为什么 it( Mathf.Clamp()) 首先不将 Cube 限制为 -3 个单位?
  • 为什么我会得到额外的 0.1 个单位?
  • 为什么这个值只有 0.1 个单位?为什么不多或少?
0 投票
0 回答
588 浏览

unity3d - 如何在 Unity3d 中以不规则形状夹住游戏对象的运动

我正在使用运行时 Gizmo 来翻译游戏中的游戏对象。我需要知道如何以不规则的形状夹住物体的运动。

例如:如果形状是 Box。

我可以n 计算此形状的边界,并使用 Bounds.max.x、Bounds.min.x、Bounds.max.y、Bounds.min.y、Bounds.max.z、Bounds.min.z 并将位置固定为这个:

Vector3 pos = gameObject.transform.position;

pos.x = Mathf.Clamp(pos.x,Bounds.min.x,Bounds.max.x);

pos.y = Mathf.Clamp(pos.y,Bounds.min.y,Bounds.max.y);

pos.x = Mathf.Clamp(pos.z,Bounds.min.z,Bounds.max.z);

gameObject.transform.position = pos;

这一切都很好,直到它是一个盒子或一个矩形,因为我可以使用 Renderer.Bounds 或 Collider.Bounds,但是,如果它是这样的不规则形状:

和我计算边界值,这将是不正确的,因为边界框/边界将始终以正方形/框形状计算,并且会给出不正确的最大值和最小值,从而使游戏对象超出形状。

我正在使用下面的 RuntimeGizmo 来翻译我的游戏对象。https://github.com/HiddenMonk/Unity3DRuntimeTransformGizmo

ps 在我的例子中,Shape 是一个方形和一个 L 形的房间,由原始立方体作为墙壁制成。有问题的游戏对象是一件家具。