UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Collider2D.Cast
# [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html).Cast public int **Cast** ([Vector2](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector2.html) **direction**, RaycastHit2D[] **results**, float **distance**= Mathf.Infinity, bool **ignoreSiblingColliders**= true); ## 参数 | direction | 表示形状投射方向的向量。 | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | | results | 用于接收结果的数组。 | | distance | 将形状投射的最大距离。 | | ignoreSiblingColliders | 确定投射是否应忽略附加到同一 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的碰撞体(称为同级碰撞体)。 | ## 返回 **int** 返回的结果数量。 ## 描述 将碰撞体形状投射到从该碰撞体位置开始的场景中,而忽略该碰撞体本身。 此函数接受碰撞体形状,并将其投射到从指定 `direction` 上的碰撞体位置开始的可选 `distance` 的场景中,并在提供的 `results` 数组中返回结果。该整数返回值为写入到 `results` 数组中的结果数。如果结果数组中没有足够的元素来报告所有这些结果,则不会调整数组的大小。其意义在于不为这些结果分配内存,因此在经常进行投射时会提高垃圾收集性能。 此外,这还将检测位于碰撞体开始位置的其他碰撞体(如果它们重叠)。在这种情况下,投射形状将从碰撞体内部开始,可能不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的 `direction` 向量的倒数。 **注意:** 使用 Collider2D.Cast() 需要使用 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html)。如果 未声明 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html),则 [Cast](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.Cast.html)() 不起作用。但 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 可以是静态的,也可以附加到 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html)。这将使 [Cast](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.Cast.html)() 正常 运行。此外,如果 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 对象没有 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 对象, 则它可与同时具有 [Collider2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Collider2D.html) 和 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 对象的对象碰撞。 --- public int **Cast** ([Vector2](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector2.html) **direction**, [ContactFilter2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/ContactFilter2D.html) **contactFilter**, RaycastHit2D[] **results**, float **distance**= Mathf.Infinity, bool **ignoreSiblingColliders**= true); ## 参数 | direction | 表示形状投射方向的向量。 | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | | contactFilter | 筛选由接触筛选器定义的结果。 | | results | 用于接收结果的数组。 | | distance | 将形状投射的最大距离。 | | ignoreSiblingColliders | 确定投射是否应忽略附加到同一 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的碰撞体(称为同级碰撞体)。 | ## 返回 **int** 返回的结果数量。 ## 描述 将碰撞体形状投射到从该碰撞体位置开始的场景中,而忽略该碰撞体本身。 此函数接受碰撞体形状,并将其投射到从指定 `direction` 上的碰撞体位置开始的可选 `distance` 的场景中,并在提供的 `results` 数组中返回结果。该整数返回值为写入到 `results` 数组中的结果数。如果结果数组中没有足够的元素来报告所有这些结果,则不会调整数组的大小。其意义在于不为这些结果分配内存,因此在经常进行投射时会提高垃圾收集性能。 `contactFilter` 参数可按 [ContactFilter2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/ContactFilter2D.html) 中的选项筛选返回的结果。 此外,这还将检测位于碰撞体开始位置的其他碰撞体(如果它们重叠)。在这种情况下,投射形状将从碰撞体内部开始,可能不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的 `direction` 向量的倒数。 --- public int **Cast** ([Vector2](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector2.html) **direction**, [ContactFilter2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/ContactFilter2D.html) **contactFilter**, List<RaycastHit2D> **results**, float **distance**= Mathf.Infinity, bool **ignoreSiblingColliders**= true); ## 参数 | direction | 表示形状投射方向的向量。 | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | | contactFilter | 筛选由接触筛选器定义的结果。 | | results | 用于接收结果的列表。 | | distance | 将形状投射的最大距离。 | | ignoreSiblingColliders | 确定投射是否应忽略附加到同一 [Rigidbody2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/Rigidbody2D.html) 的碰撞体(称为同级碰撞体)。 | ## 返回 **int** 返回的结果数量。 ## 描述 将碰撞体形状投射到从该碰撞体位置开始的场景中,而忽略该碰撞体本身。 此函数接受碰撞体形状,并将其投射到从指定 `direction` 上的碰撞体位置开始的可选 `distance` 的场景中,并在提供的 `results` 列表中返回结果。该整数返回值是写入到 `results` 列表中的结果数。如果结果列表中没有足够的元素来报告所有这些结果,则会调整列表的大小。这可在 `results` 列表无需调整大小时防止为结果分配内存,可在经常执行投射时提高垃圾收集性能。 `contactFilter` 参数可按 [ContactFilter2D](https://docs.unity3d.com/cn/2019.4/ScriptReference/ContactFilter2D.html) 中的选项筛选返回的结果。 此外,这还会检测位于碰撞体开始位置的其他碰撞体(如果它们重叠)。在这种情况下,投射形状将从碰撞体内部开始,可能不与碰撞体表面交叠。这意味着无法计算碰撞法线,在这种情况下,返回的碰撞法线设置为正在测试的 `direction` 矢量的倒数。
da
2022年5月25日 10:38
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码