版本: Unity 6 (6000.0)
语言英语
  • C#

RaycastHit2D.centroid

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项建议更改,并在必要时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请 <a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

public Vector2 centroid;

描述

物理查询形状与物体相交时的世界空间质心(中心)。

RaycastHit2D 结果从射线投射或射线查询返回时,centroid 与返回的 point 属性相同,因为直线或射线使用非常小的点,没有面积,因此其位置与它与 Collider2D 相交的位置相同。

然而,当使用其他物理查询投射具有面积的形状(如圆形、胶囊或盒子)时,centroid 是所用形状的中心,当该形状与返回的 point 接触时。例如,圆形的 centroid 始终与其返回的 point 之间的距离为半径。

centroid 有助于识别形状处于返回的 RaycastHit2D.point 位置时形状所处的位置。

其他资源: RaycastHit2D.point

using UnityEngine;

public class Example : MonoBehaviour { // A stationary planet public Transform planet;

// A satellite moving around the planet public Transform satellite;

void Update() { // Cast a circle with a radius of 10 in from the satellite position to the planet position. RaycastHit2D hit = Physics2D.CircleCast(satellite.position, 10.0f, planet.position);

// If something was hit, draw a line from the planet to the position the satellite would be if it were to hit the planet. if (hit) Debug.DrawLine(planet.position, hit.centroid, Color.yellow); } }

其他资源: RaycastHit2D.point