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

做一个英文网站2018做网站前景好么

做一个英文网站,2018做网站前景好么,台北网站建设,网站查询访问在之前的学习中我们在空间中添加了3D模型#xff0c;但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果#xff0c;同时对纯色的立方体实现点击随机换色的功能。 首先是入口文件#xff0c;无需做出改变…在之前的学习中我们在空间中添加了3D模型但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果同时对纯色的立方体实现点击随机换色的功能。 首先是入口文件无需做出改变 import SwiftUImain struct visionOSDemoApp: App {var body: some Scene {WindowGroup() {ContentView()}ImmersiveSpace(id: ImmersiveSpace) {ImmersiveView()}} } 接着是​​ViewModel.swift​​文件这里是核心逻辑 import SwiftUI import RealityKitclass ViewModel: ObservableObject {private var contentEntity Entity()private let colors: [SimpleMaterial.Color] [.gray, .red, .orange, .yellow, .green, .blue, .purple, .systemPink]func setupContentEntity() - Entity {return contentEntity}func addCube() - Entity {let entity ModelEntity(mesh: .generateBox(size: 0.5, cornerRadius: 0),materials: [SimpleMaterial(color: .red, isMetallic: false)],collisionShape: .generateBox(size: SIMD3Float(repeating: 0.5)),mass: 0.0)entity.components.set(InputTargetComponent(allowedInputTypes: .indirect))entity.position SIMD3(x: 0, y: 1, z: -2)contentEntity.addChild(entity)return entity}func changeToRandomColor(entity: Entity) {guard let _entity entity as? ModelEntity else { return }_entity.model?.materials [SimpleMaterial(color: colors.randomElement()!, isMetallic: false)]} } 这里增加了一个​​colors​​​常量用于设置一个包含多种颜色数组以便进行随机颜色修改。颜色是通过​​SimpleMaterial​​​的​​color​​​参数进行随机更换​​randomElement​​​然后赋值给​​.materials​​​属性这部分逻辑位于​​changeToRandomColor​​中。 在​​addCube​​​的逻辑中我们还是常规地生成一个​​entity​​并返回。 接着来到​​ImmersiveView​​ import SwiftUI import RealityKitstruct ImmersiveView: View {State var model ViewModel()State var cube Entity()var body: some View {RealityView { content incontent.add(model.setupContentEntity())cube model.addCube()}.gesture(DragGesture().targetedToEntity(cube).onChanged { value incube.position value.convert(value.location3D, from: .local, to: cube.parent!)}).gesture(SpatialTapGesture().targetedToEntity(cube).onEnded { value inmodel.changeToRandomColor(entity: cube)})} } 在这个视图中我们声明了​​cube​​​变量以便后续的拖拽和随机颜色修改操作。所以在初始化视图时将添加的立方体赋值给​​cube​​​。然后分别通过​​DragGesture​​​和​​SpatialTapGesture​​来实现拖拽和点击的逻辑。 这里需要说明一个本例中生成的立方体在完成拖放隐藏后再次展开后会生成一个新的供拖放和修改颜色的模型这时老的模型就无法再进行拖放了。如果读者只希望操作同一个模型可以对​​addCube​​​添加了一个​​name​​​参数并添加一个​​getTargetEntity​​方法来获取该对象当然也可以通过预设名称来切换不同的模型进行操作示例修改如下 func getTargeEntity(name: String) - Entity? {return contentEntity.children.first { $0.name name }}func addCube(name: String) - Entity {if let entity getTargeEntity(name: name) {return entity} ...entity.name name ... 对应的​​ImmersiveView​​​也要修改为类似​​cube model.addCube(Cube1)​​。 ​​ContentView.swift​​​的代码与​​Day 5​​一致 import SwiftUI import RealityKitstruct ContentView: View {State var showImmsersiveSpace falseEnvironment(\.openImmersiveSpace) var openImmersiveSpaceEnvironment(\.dismissImmersiveSpace) var dismissImmersiveSpacevar body: some View {NavigationStack {VStack {Toggle(Show ImmersiveSpace, isOn: $showImmsersiveSpace).toggleStyle(.button)}.padding()}.onChange(of: showImmsersiveSpace) { _, newValue inTask {if newValue {await openImmersiveSpace(id: ImmersiveSpace)} else {await dismissImmersiveSpace()}}}} } 运行应用点击盒子会随机改变颜色拖拽盒子会跟随鼠标的位置移动。 示例代码​​GitHub仓库​https://github.com/alanhou/ARDemo/tree/main/visionOS/Day6 其它相关内容请见​​虚拟现实(VR)/增强现实(AR)visionOS开发学习笔记​https://alanhou.org/augmented-reality/​
http://www.hkea.cn/news/14495012/

相关文章:

  • 网站顶部广告素材创鑫云网络
  • WordPress网站运行时间深圳创新创业大赛
  • 网站该怎么找线上外贸平台有哪些
  • 公司做网站卖东西要什么证网站优化种类
  • 环保主题静态网站模板下载怎么做h5动态页面
  • 东莞网站建设信科平面设计模板
  • 贵州毕节网站建设移动开发网站建设
  • 北京市保障房建设投资中心网站首页广州网站定做教程
  • 福建省建住房建设部网站游戏网站建设需要多少钱
  • 凡客建网站网站如何快速被收录
  • 齐齐哈尔网站建设公司科技股
  • 有趣的网站游戏建设黑彩网站
  • 如何调整网站板块位置建筑工程管理软件
  • 做便宜的宝贝的网站人才网最新招聘
  • 成都高端模板建站为传销做网站
  • 河源北京网站建设网站空间续费后网页不能打开
  • phpcms可以做哪些网站wordpress生成二维码
  • 站群管理系统cms任务发布插件wordpress
  • 江苏城乡住房建设部网站潍坊专业网站制作公司营销
  • 天津微信网站开发门户网站建设询价函
  • 济南做网站的公司有哪些wordpress 文章字体
  • 怎么把网站扒下来网站所有页面只显示域名
  • 建设网站你认为需要注意哪些问题应聘网站运营建设面试
  • 可以查企业备案的网站吗网络营销策略优化
  • 做中国最专业的健康门户网站wordpress升级说版本低
  • 周至做网站公司部门分类
  • html网站开发例子郑州网站推广报价
  • 网站建设公司做销售前景好不好河南智慧团建网站登录
  • 网站如何让百度收录营销策划方案1000例
  • 株洲网站建设 李阿里云网站建设