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

Unity中LineRenderer使用MeshCollider方法参考

        运行时,如果一个物体不添加Collider组件就没有办法被鼠标点击,LineRenderer由于其Mesh会随着摄像机朝向变化,如果要通过添加MeshCollider来使其能够与鼠标交互,就需要不断同步更新其MeshCollider网格。

        代码参考如下:

using UnityEngine;public class LineCollider : MonoBehaviour
{[SerializeField]LineRenderer lineRenderer;[SerializeField]MeshCollider meshCollider;void Start(){SetLineMeshCollider();}void Update(){SetLineMeshCollider();}void SetLineMeshCollider(){Mesh mesh = new();lineRenderer.BakeMesh(mesh, false);//LineRenderer使用的Mesh中的顶点坐标是基于世界(World)坐标的,而MeshCollider使用的是基于自身(Object)坐标的,需要转换一下。Vector3[] vs = mesh.vertices;Transform tranLine = lineRenderer.transform;for (int i = 0; i < vs.Length; i++){vs[i] = tranLine.InverseTransformPoint(vs[i]);}mesh.SetVertices(vs);Mesh meshPre = meshCollider.sharedMesh;meshCollider.sharedMesh = mesh;//将原来使用的Mesh要销毁一下,否则会内存溢出。if (meshPre) Destroy(meshPre);}
}

http://www.lryc.cn/news/508468.html

相关文章:

  • BERT模型入门(1)BERT的基本概念
  • 致命错误: Class ‘ZipArchive‘ not found
  • 二手车交易平台开发:安全与效率的双重挑战
  • vector题目
  • 测试测试测试测试测试测试测试测试测试测试
  • Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
  • 大恒相机开发(3)—大恒相机工业检测的实际案例
  • 【泛微表单】流程相关信息修改
  • LeetCode80.删除有序数组的重复项
  • rk3568制冷项目驱动开发流程汇总(只适用于部分模块CIF DVP等,自用)
  • 费舍尔信息矩阵全面讲述
  • DALFox-一款XSS自动化扫描工具
  • Python 异步协程:从 async/await 到 asyncio 再到 async with
  • 云原生周刊:利用 eBPF 增强 K8s
  • 【pycharm】远程服务器之后如何打开终端
  • 从零创建一个 Django 项目
  • 无人零售 4G 工业无线路由器赋能自助贩卖机高效运营
  • 使用VSCode Debugger 调试 React项目
  • [创业之路-199]:《华为战略管理法-DSTE实战体系》- 3 - 价值转移理论与利润区理论
  • AWTK-WEB 快速入门(2) - JS 应用程序
  • dolphinscheduler服务注册中心源码解析(三)RPC提供者服务整合注册中心注册服务实现源码
  • 电脑不小心删除了msvcr120.dll文件怎么办?“缺失msvcr120.dll文件”要怎么解决?
  • js 深度克隆
  • 深度学习之超分辨率算法——FRCNN
  • 软件测试之压力测试【详解】
  • 电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决
  • 分布式系统架构:限流设计模式
  • G口带宽服务器与1G独享带宽服务器:深度剖析其差异
  • Flamingo:少样本多模态大模型
  • 推荐一款免费且好用的 国产 NAS 系统 ——FnOS