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

宁波网站优化软件南昌网站建设推广专家

宁波网站优化软件,南昌网站建设推广专家,知名的深圳小程序开发公司,wordpress中文 插件细心的读者会发现在在​​Day1​​​和​​Day2​​​的示例中我们使用的都是​​WindowGroup​​。 main struct visionOSDemoApp: App {var body: some Scene {WindowGroup {ContentView()}} } 本节我们来认识在visionOS开发中会经常用到的另一个概念​​ImmersiveSpace​​…细心的读者会发现在在​​Day1​​​和​​Day2​​​的示例中我们使用的都是​​WindowGroup​​。 main struct visionOSDemoApp: App {var body: some Scene {WindowGroup {ContentView()}} } 本节我们来认识在visionOS开发中会经常用到的另一个概念​​ImmersiveSpace​​。 沉浸式空间为内容提供了一个无界的区域可在空间内控制内容的大小和摆放位置。在获取用户的授权后我们还可以使用开启了沉浸空间的ARKit来将内容集成到周遭环境中。例如可以使用ARKit场景重建来获取家具的网格(mesh)及其附近的对象让内容可以与网格进行交互。 首先我们需要创建一个​​ViewModel.swift​​文件用于进行内容的相关配置。 import SwiftUI import RealityKit import ARKitMainActor class ViewModel: ObservableObject {private let session ARKitSession()private let worldTracking WorldTrackingProvider()private var contentEntity Entity()func setupContentEntity() - Entity {let box ModelEntity(mesh: .generateBox(width: 0.5, height: 0.5, depth: 0.5))contentEntity.addChild(box)return contentEntity}func runSession() async {print(WorldTrackingProvider.isSupported: \(WorldTrackingProvider.isSupported))print(PlaneDetectionProvider.isSupported: \(PlaneDetectionProvider.isSupported))print(SceneReconstructionProvider.isSupported: \(SceneReconstructionProvider.isSupported))print(HandTrackingProvider.isSupported: \(HandTrackingProvider.isSupported))Task {let authorizationResult await session.requestAuthorization(for: [.worldSensing])for (authorizationType, authorizationStatus) in authorizationResult {print(Authorization status for \(authorizationType): \(authorizationStatus))switch authorizationStatus {case .allowed:breakcase .denied:// TODObreakcase .notDetermined:breakunknown default:break}}}Task {try await session.run([worldTracking])for await update in worldTracking.anchorUpdates {switch update.event {case .added, .updated:print(Anchor position updated.)case .removed:print(Anchor position now unknown.)}}}} } 在​​setupContentEntity​​​方法中我们通过​​ModelEntity​​​创建了一个模型实体其中对​​mesh​​​参数使用​​MeshResource.generateBox​​创建了一个立方体可使用参数的说明如下 mesh: 定义模型几何形状的网格。materials: 定义模型外观的材质资源。collisionShape: 定义合成碰撞开关的形状资源集合。mass: 按公斤计的模型质量。 另一个异步方法​​runSession​​​用于进行配置和授权的处理其中包含两个​​Task​​。 通常我们会创建一个​​ImmersiveView​​来显示沉浸空间的效果但本例我们都放到了入口文件中 import SwiftUI import RealityKitmain struct visionOSDemoApp: App {StateObject var model ViewModel()var body: some SwiftUI.Scene {ImmersiveSpace {RealityView { content incontent.add(model.setupContentEntity())}.task{await model.runSession()}}} } 注意因为这里导入了​​RealityKit​​​所以为避免歧义我们使用了​​SwiftUI.Scene​​​然后在主体内容中是一个​​RealityView​​​其中添加了我们在​​ViewModel​​​中所创建的立方体同时使用异步任务去执行授权部分的​​runSession()​​方法。 代码部分就是这么多但在运行应用前我们还要配置一下​​Info.plist​​​文件我们需要将​​Preferred Default Scene Session Role​​​选项修改为​​Immersive Space Application Session Role​​ 这时运行应用就会看到本文前面显示的效果最后我们再来了解一个调试的工具在代码区下方点击图标即可打开Visualizations弹窗通过显示检测到表面、遮挡和锚点等来辅助我们的开始我们的示例图片便是勾选了​​Surfaces​​之后的效果。 示例代码​​GitHub仓库​​ 其它相关内容请见​​虚拟现实(VR)/增强现实(AR)visionOS开发学习笔记​​
http://www.yutouwan.com/news/52582/

相关文章:

  • 自己可以做开奖网站吗wordpress 可以商业
  • 网站生成软件app制作做软件需要网站吗
  • 四川学校网站建设有个网站是做视频相册的
  • 网站做淘宝联盟网站在线咨询模块
  • 用servlet做外卖网站网络平台推广宣传方案
  • 福田皇岗社区做网站wordpress插件汉化下载地址
  • 开发新闻类网站如何看网站是用什么程序做的
  • 网站开发 网站设计网站图片怎么做
  • 丽水网站建设哪家好网站推广实施方案
  • 做网站的意义重庆集团公司网站建设
  • 做海外网站的公司重庆市建设工程造价信息
  • 北京网站建设找降龙用asp做网站的流程
  • 青海省网站建设公司哪家好外贸运营推广方式
  • 毕业设计网站怎么做大连建站费用
  • 网络营销做得比较成功的案例优化方案怎么写
  • 违章建设举报网站常用的软件开发平台
  • 中山专业门户网站制作平台运营方案怎么做
  • 销售网站怎么做的胶州网站建设培训
  • 网页版传奇网站石家庄铁路职业技工学校
  • 程序员做网站类网站电影网站开发api
  • 网站建设尺寸规范黔西南网站建设
  • 睢县网站制作公司网站培训视频
  • 长沙开福区专业网站制作做玻璃瓶的网站
  • 专业的网站建设宝安西乡十大免费行情软件
  • 珠海十大网站建设公司哪家好上海手机站网站建设
  • 扫二维码直接进入网站 怎么做网站开通后
  • 贵州省城乡建设厅网站材料价兰州网站建设cheng
  • 前端做用vue做后台多还是做网站多58同城百姓网
  • 许昌做网站的公司做网站需要的企业
  • 手机端网站优化镇海区住房建设网站怎么查