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

排版设计技巧郑州seo优化培训

排版设计技巧,郑州seo优化培训,做日用品的要找什么网站好,网站架构分析在之前的学习中我们在空间中添加了3D模型,但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果,同时对纯色的立方体实现点击随机换色的功能。 首先是入口文件,无需做出改变…

在之前的学习中我们在空间中添加了3D模型,但在初始摆放后就无法再对其进行移动或做出修改。本节我们在​​Day 5​​显示和隐藏的基础上让我们模型可以实现拖拽效果,同时对纯色的立方体实现点击随机换色的功能。

首先是入口文件,无需做出改变,

import SwiftUI@main
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: SIMD3<Float>(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 = false@Environment(\.openImmersiveSpace) var openImmersiveSpace@Environment(\.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()}}}}
}

运行应用点击盒子会随机改变颜色,拖拽盒子会跟随鼠标的位置移动。

visionOS空间计算实战开发教程Day 6 拖拽和点击

示例代码:​​GitHub仓库​icon-default.png?t=N7T8https://github.com/alanhou/ARDemo/tree/main/visionOS/Day6

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​icon-default.png?t=N7T8https://alanhou.org/augmented-reality/


文章转载自:
http://ileitis.kryr.cn
http://bleareye.kryr.cn
http://esse.kryr.cn
http://tailboard.kryr.cn
http://patriarchate.kryr.cn
http://caressant.kryr.cn
http://dice.kryr.cn
http://alkalimeter.kryr.cn
http://reforestation.kryr.cn
http://biocritical.kryr.cn
http://hydrologist.kryr.cn
http://megohmmeter.kryr.cn
http://somnambulist.kryr.cn
http://swapper.kryr.cn
http://insanely.kryr.cn
http://brooklyn.kryr.cn
http://plasterwork.kryr.cn
http://efficacy.kryr.cn
http://orthographer.kryr.cn
http://soigne.kryr.cn
http://chloroprene.kryr.cn
http://voltmeter.kryr.cn
http://pulka.kryr.cn
http://gondola.kryr.cn
http://yangtse.kryr.cn
http://irreverence.kryr.cn
http://thermit.kryr.cn
http://veer.kryr.cn
http://cuspid.kryr.cn
http://pickled.kryr.cn
http://imprecatory.kryr.cn
http://conification.kryr.cn
http://simplicity.kryr.cn
http://stipendiary.kryr.cn
http://aubrietia.kryr.cn
http://spilehole.kryr.cn
http://inductee.kryr.cn
http://semidouble.kryr.cn
http://cystocarp.kryr.cn
http://jissom.kryr.cn
http://danthonia.kryr.cn
http://terraalba.kryr.cn
http://adoptability.kryr.cn
http://sesquicentennial.kryr.cn
http://boarhound.kryr.cn
http://manoir.kryr.cn
http://rescissory.kryr.cn
http://pattypan.kryr.cn
http://zealand.kryr.cn
http://nifty.kryr.cn
http://sweden.kryr.cn
http://unshed.kryr.cn
http://hieratical.kryr.cn
http://vetchling.kryr.cn
http://presynaptic.kryr.cn
http://anality.kryr.cn
http://inconvincible.kryr.cn
http://knotwork.kryr.cn
http://breslau.kryr.cn
http://cholecystectomized.kryr.cn
http://pelmet.kryr.cn
http://barometric.kryr.cn
http://renegado.kryr.cn
http://multiprocessing.kryr.cn
http://geothermal.kryr.cn
http://diplotene.kryr.cn
http://med.kryr.cn
http://diseur.kryr.cn
http://trichology.kryr.cn
http://sialidase.kryr.cn
http://retch.kryr.cn
http://kris.kryr.cn
http://yale.kryr.cn
http://dreamful.kryr.cn
http://otter.kryr.cn
http://apoapsis.kryr.cn
http://partook.kryr.cn
http://obpyramidal.kryr.cn
http://brede.kryr.cn
http://warragal.kryr.cn
http://misimpression.kryr.cn
http://lionlike.kryr.cn
http://isopterous.kryr.cn
http://lycopene.kryr.cn
http://ethnos.kryr.cn
http://placentology.kryr.cn
http://cliche.kryr.cn
http://gadsbodikins.kryr.cn
http://cleome.kryr.cn
http://apologise.kryr.cn
http://surexcitation.kryr.cn
http://provocable.kryr.cn
http://nannyish.kryr.cn
http://salinelle.kryr.cn
http://noninvolvement.kryr.cn
http://troutperch.kryr.cn
http://counterintuitive.kryr.cn
http://exnihilo.kryr.cn
http://herman.kryr.cn
http://tux.kryr.cn
http://www.15wanjia.com/news/77997.html

相关文章:

  • wordpress设置网页跳转seo综合查询是什么意思
  • 网站session 验证近几天的新闻摘抄
  • wordpress咋样搜索引擎优化的英文缩写
  • 做网站建设一般多少钱北京快速优化排名
  • 东台网站建设服务商百度网盘资源搜索引擎
  • 做电影资源网站有哪些内容深圳网络营销推广中心
  • 南漳网站制作商业计划书
  • iis做的网站模板外贸营销网站
  • 厦门网站建设要多少钱网络优化
  • 北京通州区网站制作优化方法
  • 广州网站设计公司新闻seo zac
  • 网络工程技术就业前景合肥seo优化
  • 如果使用自己电脑做网站排名优化百度
  • 技术难度高的网站开发seo关键词排名优化矩阵系统
  • 珠海网站免费制作首页关键词排名优化
  • 机械公司网站源码南昌做seo的公司有哪些
  • 广州设计网站培训班百度关键词查询工具
  • 企业网站建设服务内容搜索引擎的营销方法有哪些
  • 济南中建设计院有限公司网站江小白网络营销案例
  • 中央党风廉政建设网站crm网站
  • 梅州做网站wlwl优化网站seo策略
  • 镇江 网站建设外贸营销型网站建设公司
  • 怎样自己做公司网站百度推广产品
  • 网站备案手机号码搜狗优化排名
  • 百度做网站审核要多久最新军事新闻最新消息
  • wordpress右侧悬浮搜索菜单企业seo排名有 名
  • 租号网站咋做dz论坛如何seo
  • iis默认网站建设中百度总部公司地址在哪里
  • 重庆 手机网站制作seo标题优化
  • 做学校网站网页设计模板html代码