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

Unity中使用矩阵实现物体跟随

需求:

在某一特殊情况下,物体的子物体需要重新设置新的父物体,但还需要跟随原先物体移动。

1.搭建测试场景:

2.实现:

新建脚本TestFollow,代码如下:

public class TestFollow : MonoBehaviour { public RectTransform moveItem; public RectTransform followItem; public Transform followItemParent; // 存储相对变换矩阵 private Matrix4x4 offsetMatrix; void Start() { Matrix4x4 itemWorldMatrix = moveItem.localToWorldMatrix; Matrix4x4 thisWorldMatrix = followItem.localToWorldMatrix; // 计算相对矩阵:offset = child * parent^-1 offsetMatrix = thisWorldMatrix * itemWorldMatrix.inverse; followItem.SetParent(followItemParent); } // Update is called once per frame void Update() { // 使用矩阵计算新的世界位置 Matrix4x4 itemWorldMatrix = moveItem.localToWorldMatrix; Matrix4x4 newWorldMatrix = offsetMatrix * itemWorldMatrix; // 从矩阵中提取位置 Vector3 newPosition = newWorldMatrix.GetColumn(3); followItem.position = newPosition; } }

原理:

在游戏开始时计算原父物体与子物体的相对矩阵,在原父物体移动时,通过相对矩阵与原原父物体的世界位置,计算子物体的世界位置。

演示:

http://www.cnnetsun.cn/news/1241708.html

相关文章:

  • **标题:SRE实践新视角:基于Go语言构建高可用性服务健康检查系统**在现代
  • 348. Java IO API - 将代码重构为使用 Path
  • 震惊!Nature子刊论文竟有85%的参考文献都是假的!为提高编校质量,期刊编辑部启用这款文献校对软件,已经迫在眉睫!
  • Docker核心概念与环境安装
  • 力扣解题-69. x 的平方根
  • v-if 和 v-for 为什么不能同时使用?优先级是怎样的?
  • 硬核实战:拒绝 UI 卡死!C++ 仪器系统中的 Lua 脚本多线程与硬件绑定揭秘
  • 新手求解 虚拟机的安装出现了问题
  • 《OpenClaw架构与源码解读》· 第 9 章 启动流程:从 openclaw onboard 到守护进程跑起来
  • 频模式从底层上的了解,这一篇主要记录一下带通采样定理的知识,下一篇会涉及到三种混频模式的配置不同 在这里采样和频谱混叠等本科基础知识 ...
  • Web基础与Nginx部署全攻略
  • Java 基础编程练习(一)
  • 01-LLM 基础与提示词工程:从 API 调用到 Prompt 优化技巧
  • 固定窗口神经语言模型|A fixed-window neural Language Model
  • 876488
  • 别再让“人肉搬运”拖垮物流利润!实测实在Agent:单据处理快10倍,调度决策秒级响应,物流人的数字化续命神器
  • Claude 结合 spec-kit 使用指南
  • 基于Simulink 2021A以上版本的混合储能系统下垂控制策略下的光储微网直流母线电压稳定性研究
  • 特定格式的输出:setfill一定要记得重置!
  • 详解Python中args与*kwargs的使用场景
  • 当LSTM遇上Matlab:手把手玩转时间序列预测
  • 初级运维-基础命令
  • OpenClaw深度分析:当AI从“顾问”变成“员工”,我们准备好了吗?
  • 网络安全需要学什么软件?网络安全软件有哪些?
  • 风味优化/异味溯源 | 一站式GC-MS挥发性成分检测解决方案
  • 2026爆款外呼系统盘点|中小企业首选,高性价比闭眼入
  • ArcGIS水文分析、HEC-RAS模拟技术在洪水危险性及风险评估
  • ISO9001:2026 新版质量手册修订汇总
  • 结构化分析结果与可视化图表
  • 下一代DeFi聚合枢纽:融合RWA资产与社区激励的多维平台设计