unity3d - 如果对象达到变换值,则停止它
问题描述
所以我有一个 2d 游戏对象,它的行为就像一个尖刺陷阱,当角色在触发器上碰撞时会从地面弹出。我在游戏对象的 2D 刚体上使用 AddForce 来控制它从地面出来时的速度,我希望它只是伸出地面。当它达到某个转换 Y 值时,我该如何停止它。
这是我的代码:
public float speed;
Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D>();
}
void Update () {
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Player")
{
rb.AddForce(new Vector2(0, speed * Time.time), ForceMode2D.Impulse);
}
}
解决方案
一定的变换值,还是一定的 transform.position 值?
我会这样做:
private float threshold = 10f;
private float startPosition = 0;
private RigidBody2D pikeRigidbody;:
private void Start()
{
startPosition = = this.transform.position;
pikeRigidbody = this.GetComponent<RigidBody2D>();
}
private void Update(){
if(this.transform.position.y >= (startPosition.y + threshold))
{
pikeRigidbody.velocity = Vector3.zero;
}
}
并将脚本附加到 pike 对象。
编辑为 position.y 而不是 position
推荐阅读
- knex.js - 如何将带有别名的 SQL LEFT 放入书架?
- dart - 使用 Stream.periodic 时如何取消 Stream?
- node.js - 执行mongodb请求后如何向前端发送响应?
- ios - GPUImageLookupFilter 没有为以下 LUT 图像提供所需的结果
- php - 在 PHP 中使用来自 4 个不同数组的数据查找平均数/等级
- javascript - CSS 导航栏过渡在向下滚动时平滑,但在向上滚动时根本没有过渡
- mongodb - 如何将数据帧行大小计算为 Mongo 文档以作为 Mongo Spark 连接器的输入发送
- ruby-on-rails - 将 where() 与 join() 和 includes() 一起使用时出现 ActiveRecord 预加载错误
- sql - SQL Server 浮点数不稳定的最后一位数字
- python - Cloud Natural Language API Python 脚本错误(客户端对象没有属性 create_rows)