unity3d - Unity3d - 什么是 linecast hit.normal
问题描述
我试图了解hit.normal
线播返回的内容。这是检查字符斜率限制的简单方法,我唯一想知道的是它是hit.normal
什么?
private void check_slope_limit() {
// Var
var hit_angle = 0f;
// Raycast
RaycastHit hit;
// Line of direction: if hit ground layer
if (
Physics.Linecast(transform.position + Vector3.up, transform.position + direction.normalized, out hit, ground_layer)
){
hit_angle = Vector3.Angle(Vector3.up, hit.normal);
var target_point = hit.point + direction.normalized;
Debug.DrawLine(transform.position + Vector3.up, transform.position + direction.normalized, Color.yellow);
if (
hit_angle > slope_limit
&&
Physics.Linecast(transform.position + Vector3.up, target_point, out hit, ground_layer)
){
if (hit_angle > slope_limit){
move = false;
return;
}
}
}
move = true;
}
我真的很讨厌不了解就做某事
解决方案
这是命中点表面的法线:
推荐阅读
- javascript - 使用 React Bootstrap 选项卡反应嵌套路由
- html - 无法将网页转换为 HTML 电子邮件
- python - DatasetV1Adapter 对象不可下标
- mysql - 有没有办法在 SQL 中实时使用聚合函数
- django - 如何在一个模板中编辑超过 2 个对象?
- google-bigquery - BigQuery - 数据传输成功,但目标表保持为空
- wsdl - 调用 Web 服务标注以发送出站消息时出错
- apache-spark - 从 S3 读取的火花作业(在 EC2 上运行)的延迟
- reactjs - React(Typescript)中的useTransition类型错误
- c# - 更新数据库时向用户发送通知 Azure 通知中心