unity3d - 如何知道 AR 空间中的物体位置?(台式机和移动设备之间的行为不一致)
问题描述
我正在尝试使用 8th Wall 将元素移动到 Unity 中的另一个位置(用户单击时选择的新位置),但该元素的方向不正确。在桌面上一切正常,但一旦我进入 AR 模式,行为就会不一致。有没有办法知道 AR 模式下的元素位置?
Update() 循环中使用的代码:my3DObject.transform.position = Vector3.Lerp(originalLocation.position, elementSelectedByUser.position, fractionOfJourney);
解决方案
首先,您不应为此使用 Lerp,而应使用 SmoothDamp。Lerp 根据帧速率而不一致,并且永远不会真正达到这样使用的目标。
其次,由于您尝试移动的两个项目都是单亲的孩子并且彼此相对移动,因此使用position
可能会产生意想不到的后果。例如,这里的插值发生在世界坐标中,这意味着如果相机移动,原始位置可能远离父位置。使用专门的本地坐标可能会解决这个问题。
推荐阅读
- asp.net - ASP.NET Core MVC:创建与以前在另一个视图上创建的作者关联的帖子
- javascript - 如何在reactjs中单击按钮取消下载文件?
- sql-server - SQL:72025: 引用的程序集 .DLL 已损坏或无效
- c# - 实体框架数据库优先和列属性不起作用
- php - 安全的 AWS S3 文件 url 如何在 php 中显示
- ms-access - 删除后保存记录
- android - 自上而下的导航抽屉
- firebase - 在一个 Firebase 身份验证上构建两个(客户端/管理员)应用程序
- xml - 如何从输出中仅选择描述?
- tfs - TFS/msbuild,构建项目参考