基于Hololens开发---本地化空间锚点
基于Hololens开发—本地化空间锚点
本地化空间锚基于Hololens的空间映射,本项目本章内容主要是对Hololens端的离线瞄点进行保存,当再次启用项目时将数据进行读取重置当前位置。具体过程见“注释”
public class SpaceAnchorController : MonoBehaviour
{public string ObjectAnchorStoreName;WorldAnchorStore anchorStore;bool Placing = false;void Start(){//获取WorldAnchorStore 对象WorldAnchorStore.GetAsync(AnchorStoreReady);}private void AnchorStoreReady(WorldAnchorStore store){anchorStore = store;string[] ids = anchorStore.GetAllIds();//遍历之前保存的空间锚,载入指定id场景对象信息for (int index = 0; index < ids.Length; index++){if (ids[index] == ObjectAnchorStoreName){WorldAnchor wa = anchorStore.Load(ids[index], gameObject);break;}}}// Update is called once per framevoid Update(){if (Placing){//当Cube处于可移动状态,根据凝视射线的位置,更新Cube的位置gameObject.transform.position = Camera.main.transform.position + Camera.main.transform.forward * 2;}}public void OnSelect(){if (anchorStore == null){return;}if (Placing){//当再次点击全息对象时,保存空间锚信息WorldAnchor attachingAnchor = gameObject.AddComponent<WorldAnchor>();if (attachingAnchor.isLocated){bool saved = anchorStore.Save(ObjectAnchorStoreName, attachingAnchor);}else{//有时空间锚能够立刻被定位到。这时候,给对象添加空间锚后,空间锚组件的isLocated属性//值将会被设为true,这时OnTrackingChanged事件将不会被触发。因此,在添加空间锚组件//后,推荐立刻使用初始的isLocated状态去调用OnTrackingChanged事件attachingAnchor.OnTrackingChanged += AttachingAnchor_OnTrackingChanged;}}else{//当全息对象已附加空间锚组件后,它不能被移动。如果你需要移动全息对象的话,那么你必须这样做://1.立刻销毁空间锚组件//2.移动全息对象//3.添加一个新的空间锚到全息对象上WorldAnchor anchor = gameObject.GetComponent<WorldAnchor>();if (anchor != null){DestroyImmediate(anchor);}string[] ids = anchorStore.GetAllIds();for (int index = 0; index < ids.Length; index++){if (ids[index] == ObjectAnchorStoreName){bool deleted = anchorStore.Delete(ids[index]);break;}}}Placing = !Placing;}private void AttachingAnchor_OnTrackingChanged(WorldAnchor self, bool located){if (located){bool saved = anchorStore.Save(ObjectAnchorStoreName, self);self.OnTrackingChanged -= AttachingAnchor_OnTrackingChanged;}}
}
基于Hololens开发---本地化空间锚点相关推荐
- HoloLens开发手记 - 空间映射(SpatialMapping)
空间映射提供了HoloLens周围环境中真实世界表面的详细表示,允许开发人员创建令人信服的混合现实体验.通过将真实世界与虚拟世界合并,应用可以使全息图看起来是真实的.通过提供熟悉的现实世界行为和交互, ...
- 第十九篇:UE4基于nDisplay开发Cave空间(一)
一年没写博客了,主要太忙了,今年完成了人生中的几件大事,哈哈哈.....好不容易闲下来,之前写过两篇使用UE4 开发Cave空间的文章,后来发现UE4 有一个nDisplay的插件可以用于Cave的开 ...
- Hololens 开发笔记(10)——World Anchor
Hololens 实现全息体验的一个特性就是场景保持.当用户离开场景或关闭应用时,场景中的全息图会被保存在所放置的位置,当用户回到场景或重新打开应用时,能够准确的还原之前场景内的全息内容. World ...
- [洪流学堂]Hololens开发高级篇5:空间映射(Spatial mapping)
本教程基于Unity2017.2及Visual Studio 2017 本教程编写时间:2017年12月16日 本文内容提要 空间映射让holograms了解周围环境,将真实世界和虚拟世界更好地结合在 ...
- arcgis中python批处理_基于Python的ArcGIS空间数据格式批处理转换工具开发
基于 Python 的 ArcGIS 空间数据格式批处理转换工具开 发 焦 洋,邓 鑫,李胜才 [摘 要] 摘 要 ArcGIS 仅提供了单个文件的空间数据格式转换工具.本文首先 研究基于 Pytho ...
- 空间素材代码_C++大神解读视频捕获程序,VC++基于Directx开发的源代码
一款小巧的视频捕获程序,VC++6.0基于Directx开发的源代码,编译时需要Directx相关类库文件, 窗口表单编写的简单视频捕捉应用程序.这个工程既演示了窗口表单应用程序的创建,又演示了 Op ...
- HoloLens开发环境安装部署(基于Unity2018.4/VS2017/MRTK)
HoloLens是微软的MR开发环境,网上有很多部署教程,我这里推一个博主的部署方法,大体上都差不多.用微软的官方平台把UWP程序部署到HoloLens眼镜里. HoloLens开发环境安装部署 一. ...
- HoloLens开发手记 - Unity development overview 使用Unity开发概述
Unity Technical Preview for HoloLens最新发行版为:Beta 24,发布于 09/07/2016 开始使用Unity开发HoloLens应用之前,确保你已经安装好了必 ...
- Microsoft Hololens开发上手(4)
磨刀不误砍柴功,我们总有一些小工程师,不了解全貌,不好好思考,上手就开始写代码,这种做法是非常不可取的.对于Hololens的开发也是一样.今天我们来重点看看Hololens里面的一些概念,比如Hol ...
最新文章
- TCP/IP反码求和校验
- 3——PHP 简单运算符的使用
- Linux下Apache虚拟主机配置
- 整理大型网站架构必知必会的几个服务器知识
- 爆笑:可怜的话剧演员
- GoLang学习笔记——data_type
- ARC080F - Prime Flip(贪心,差分,二分图匹配)
- 小米要用 AI + IoT 做年轻人的第一套智能家居
- 如何将servlet中的变量在jsp页面中显示---jsp中的jstl表达式(C标签)
- Win10文件管理器那些你不知道的秘密
- python爬虫搜索文献_【Python爬虫】爬取多关键字搜索的百度图片
- Jack Lin tools 3Dmax批渲染插件
- GridinSoft CHM编辑器3.2.0多语言,轻松快速地翻译CHM电子书
- 外贸企业域名邮箱怎么申请?
- 用border-color 的 transparent 制作一个三角形
- (转)少儿编程这么火, 究竟学哪一种语言最靠谱?这篇文章说透了!
- 《安富莱嵌入式周报》第210期:2021.04.26--2021.05.02
- php日志分析,PHP SeasLog实现高性能日志记录
- System Verilog简要笔记
- 百度升级烽火算法2.0,建议网站https改造打击网站劫持