当前位置: 首页 > news >正文

unity npc射线检测碰撞

源代码

计算碰撞体的高度一半,用于将射线的起点从物体的中心点偏移到底部。
 

var offset = m_collider.size.y * 0.5f;
var hit = Physics2D.Raycast(
    transform.position - new Vector3( 0, offset, 0 ), // 射线起点
    dir,                                              // 射线方向
    m_collider.size.x * 0.55f,                        // 射线长度
    Globals.ENV_MASK                                  // 仅检测 ENV_MASK 层
);

原项目使用效果

是刚好超出碰撞体x长度0.05的

新项目使用效果

问题

我也是0.5怎么就取不到一半

结果

他喵的整个对象的大小变了,结果碰撞体的长度也影响了,最终值就错了

原:

新:

(亏我调了几个钟可恶)

解决:

加个bound就行了

    var raycastLength = m_collider.bounds.size.x * 0.55f;

 对比

var offset = m_collider.size.y * 0.5f;
var hit = Physics2D.Raycast(
    transform.position - new Vector3( 0, offset, 0 ), // 射线起点
    dir,                                              // 射线方向
    m_collider.size.x * 0.55f,                        // 射线长度
    Globals.ENV_MASK                                  // 仅检测 ENV_MASK 层
);
        var offset = m_collider.size.y * 0.5f;
        var raycastLength = m_collider.bounds.size.x * 0.55f; // 适配缩放
        var hit = Physics2D.Raycast(
            transform.position - new Vector3(0, offset, 0),
            dir,
            raycastLength,
            Globals.ENV_MASK
        );

结果:无论对象大小多少,都不影响射线整体比例 

//调试射线代码
Debug.DrawRay(transform.position - new Vector3(0, offset, 0), dir * (raycastLength), Color.red, 1f);

 

相关文章:

  • Java技术专题-Java Agent探针的技术介绍(1)
  • DocumentByParagraphSplitter:LangChain4j中文本处理的“智能切割刀”
  • 防火墙双机热备(主备分担)
  • 神经外科手术规划的实现方案及未来发展方向
  • Java 反射机制详解
  • 4.好事多磨 1
  • 流量密码破解:eBay店铺首页改版后的黄金展示位
  • HTML,CSS,JavaScript
  • 如何有效运营Instagram,降低封号风险?
  • Java的继承:方法;属性?
  • 使用 Google Firebase 控制台和 ESP8266 NodeMCU 的物联网控制 LED
  • 如何理解std::promise和std::future
  • 【conda activate无效】 conda: error: argument COMMAND: invalid choice: ‘activate‘
  • 【css酷炫效果】纯CSS实现悬浮弹性按钮
  • SSH时bashrc失效 - 解决方案
  • 关于“碰一碰发视频”系统的技术开发文档框架
  • 【C++】Virtual function and Polymorphism
  • 数据判定与去重:确保数据准确性和一致性的最佳实践
  • JAVA学习*抽象类
  • 【深度学习与大模型基础】第6章-对角矩阵,对称矩阵,正交矩阵
  • 南宁网站建设专业品牌/新东方英语培训机构官网
  • 免费自制ppt软件/免费seo网站
  • 深圳贸易网站开发/百度数据分析工具
  • asp网站域名授权/知乎关键词排名优化工具
  • 成都个人团队网站开发/全网关键词搜索
  • php做网站python做什么/线上营销模式