Unity AR Foundation APK中AR模型扫描QR码后缩放异常求助
AR Foundation扫描QR码后模型自动缩放的解决方案
检查AR Session Origin的缩放
确保AR Session Origin的本地缩放是(1,1,1),AR Foundation的跟踪空间缩放会直接作用于所有子物体。如果这个节点缩放不对,加载的模型会被额外缩放。可以在代码里加载模型后强制修正:arSessionOrigin.transform.localScale = Vector3.one;修正模型导入设置
打开模型的Import Settings,确认Scale Factor设为1,并且选择File Scale(针对FBX/OBJ这类格式)。加载模型后直接指定目标缩放,覆盖任何导入或跟踪带来的偏差:// 注意Unity轴对应:假设长是X,宽是Z,高是Y,根据你的模型调整 loadedModel.transform.localScale = new Vector3(10, 20, 10);排查QR锚点的缩放问题
有些QR识别插件生成的AR Anchor可能自带缩放,导致模型被缩放。把模型挂载到锚点下时,强制设置模型的本地缩放:GameObject model = Instantiate(yourModelPrefab, arAnchor.transform); model.transform.localScale = new Vector3(10, 20, 10);核对AR单位匹配
AR Foundation默认以米为单位,如果你的模型尺寸是厘米级(比如你说的10是10厘米),直接用10的话会被放大100倍。这种情况要么把缩放改成(0.1f, 0.2f, 0.1f),要么在模型导入时把Scale Factor设为0.01。排查其他脚本的干扰
检查项目里有没有其他脚本在动态修改模型或其父物体的缩放(比如相机适配、碰撞检测脚本)。如果找不到问题,可以临时加个锁定缩放的脚本:void Awake() { // 锁定缩放为目标值 transform.localScale = new Vector3(10, 20, 10); // 锁定后可以禁用此脚本,避免性能消耗 enabled = false; }
内容的提问来源于stack exchange,提问作者Harsh Panchal
相关产品推荐
相关产品推荐

