// 射线碰撞的目标对象
RaycastHit hitInfo;
// 射线的最大长度
float maxDistance = 100;
void hit() {
// 计算距离, 可以用于判断不在范围内,return
float distance = Vector3.Distance(player.position, enemy.position);
Debug.Log("distance" + distance);
coolTime = 0.6f;
// 创建射线,返回是否检测到碰撞对象
bool raycast = Physics.Raycast(player.position, enemy.position, out hitInfo, maxDistance);
// 如果发生碰撞,碰撞信息就被存储到 hitInfo 中
if (raycast)
{
// 获取碰撞点坐标
Vector3 point = hitInfo.point;
Debug.Log("碰撞点坐标:" + point);
// 获取碰撞目标的名称
string name = hitInfo.collider.name;
Debug.Log("碰撞对象名称:" + name);
// 获取目标的碰撞体组件
Collider coll = hitInfo.collider;
//获取目标的Transgorm组件
Transform trans = hitInfo.transform;
}
}
unity射线检测碰撞点
最新推荐文章于 2024-10-04 19:40:51 发布