尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

unity动态将3d标牌UI加载到模型子物体下,UI变形问题

unity动态将3d标牌UI加载到模型子物体下,UI变形问题
📅 发布时间:2026/6/20 5:19:33

unity动态将3d标牌UI加载到模型子物体下,UI变形问题

//1、直接生成模型
GameObject prefab = GameObject.Instantiate(modeinfo, SelectedModel.transform);
//2、先生成在世界下,再设置为子物体
prefab.transform.SetParent(currentlySelectedModel.transform); //同样SetParent方法默认下也是受父物体影响

该方法是将World Space 模式下的ui生成在 SelectedModel 模型下,即将ui作为子物体。此时ui的缩放值会受其父物体的缩放值的影响,故导致其变形。

以上两种办法都会导致ui变形。

解决方案:

// 需要补偿父物体的变换影响
private void LoadModeInfo()
{// 先计算补偿变换Vector3 parentScale = currentlySelectedModel.transform.lossyScale;Vector3 compensationScale = new Vector3(1f/parentScale.x, 1f/parentScale.y, 1f/parentScale.z) * 0.1f;GameObject prefab = GameObject.Instantiate(modeinfo);prefab.transform.SetParent(currentlySelectedModel.transform, false); // false表示不立即应用父物体变换// 应用补偿缩放prefab.transform.localScale = compensationScale;//设置3d标牌位于人物中心0.55高度prefab.transform.localPosition = new Vector3(0, 0.55f, 0);Canvas canvas = prefab.GetComponent<Canvas>();canvas.worldCamera = Camera.main;}

原理:

补偿计算原理解释
1. 目的
补偿计算是为了抵消父物体 scale 对子物体造成的变形影响,保持子物体在视觉上的正常大小。
2. 计算过程

  • 获取父物体的世界缩放
  Vector3 parentScale = currentlySelectedModel.transform.lossyScale;

lossyScale 返回物体在世界空间中的实际缩放值,包含了所有父级的缩放影响。

  • 计算补偿因子:
  Vector3 compensationScale = new Vector3(1f/parentScale.x, 1f/parentScale.y, 1f/parentScale.z) * 0.1f;

分解为两步:
1、1f/parentScale - 计算每个轴的逆缩放因子,用于完全抵消父物体的缩放影响
2、* 0.1f - 应用目标缩放值(0.1倍标准大小)

3. 工作原理
当一个物体成为子物体时,它的最终显示大小 = localScale × parent.lossyScale

  • 如果不进行补偿,子物体会随父物体缩放而变形
  • 通过应用 1/parentScale 的补偿因子,可以抵消父物体的影响
  • 最终结果:子物体保持固定大小,不受父物体缩放影响

4. 示例
假设父物体 scale 为 (2, 2, 2):

  • 无补偿时子物体实际大小:(1, 1, 1) × (2, 2, 2) = (2, 2, 2) → 放大2倍
  • 应用补偿后:(0.05, 0.05, 0.05) × (2, 2, 2) = (0.1, 0.1, 0.1) → 保持0.1倍标准大小

相关新闻

  • 常州一对一家教机构哪个好?2026权威测评榜单:从师资到提分,5家主流平台深度对比
  • 2025年7大AI写论文工具推荐|一键生成+文献智能整合,毕业论文查重无忧!
  • 国标GB28181算法算力平台EasyGBS如何为养老院构建全天候安全防线?

最新新闻

  • 深入解析S12XDBG硬件调试模块:从比较器、状态机到复杂断点实战
  • 从环境变量到密码安全:Aero处理敏感配置的完整方案
  • CANN/ge获取HCCL跟随流数量
  • RxJavaSample高级技巧:10个实用方法解决回调地狱和复杂异步问题
  • 终极指南:快速解决跨平台中文显示不一致的PingFangSC字体配置方案
  • MiniCPM-V 4.6端侧部署实战:RTX 4070上稳定运行多模态推理

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号